Permission denied when creating a database
If you are a Windows admin, you may create a sysadmin login for yourself following the procedure documented here: Connect to SQL Server when system administrators are locked out
Here it is in batch file form to run (from an elevated command prompt), for a default instance:
net stop mssqlserver 
net start mssqlserver /mSQLCMD 
sqlcmd -Q &quot;if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'&quot; 
net stop mssqlserver 
net start mssqlserver 
sqlcmd -Q &quot;if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'&quot;

or for a named instance:
net stop mssql$sqlexpress 
net start mssql$sqlexpress /mSQLCMD 
sqlcmd -S (local)\sqlexpress -Q &quot;if not exists(select * from sys.server_principals where name='BUILTIN\administrators') CREATE LOGIN [BUILTIN\administrators] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\administrators', @rolename = N'sysadmin'&quot; 
net stop mssql$sqlexpress
net start mssql$sqlexpress
sqlcmd -S (local)\sqlexpress -Q &quot;if exists( select * from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'&quot;

Note that if you create the login for BUILTIN\administrators and you've got User Account Control enabled then you'll have to elevate to connect.  If you create a login for your individual account you won't need to elevate.