コマンドプロンプトで次のコマンドを実行してみてください(DOMAIN\login
あなたのものに変更してください):
net stop MSSQLSERVER
net start MSSQLSERVER /mSQLCMD
sqlcmd -S . -Q "if not exists(select 1 from sys.server_principals where name='DOMAIN\login') CREATE LOGIN [DOMAIN\login] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'DOMAIN\login', @rolename = N'sysadmin'"
net stop MSSQLSERVER
net start MSSQLSERVER
sqlcmd -S . -Q "if exists(select 1 from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"
または、SqlServer インスタンスに特定の名前がある場合、たとえばsql2008
次のようになります。
set instanceName=sql2008
net stop mssql$%instanceName%
net start mssql$%instanceName% /mSQLCMD
sqlcmd -S .\%instanceName% -Q "if not exists(select 1 from sys.server_principals where name='DOMAIN\login') CREATE LOGIN [DOMAIN\login] FROM WINDOWS;EXEC master..sp_addsrvrolemember @loginame = N'DOMAIN\login', @rolename = N'sysadmin'"
net stop mssql$%instanceName%
net start mssql$s%instanceName%
sqlcmd -S .\%instanceName% -Q "if exists(select 1 from fn_my_permissions(NULL, 'SERVER') where permission_name = 'CONTROL SERVER') print 'You are a sysadmin.'"