私は知っていることをすべて試し、成功することなく数時間グーグルで過ごしました。ログインCONTROL SERVER
のSHUTDOWN
およびNT AUTHORITY\SYSTEM
権限を取り消す必要があります。
これを実行すると
EXECUTE AS LOGIN = 'NT AUTHORITY\SYSTEM'
SELECT * FROM fn_my_permissions(NULL,NULL)
REVERT
...出力は次のとおりです。
私が試したこと:
ログインを完全に削除し、次のコマンドを実行します(さまざまな権限がリストされています)。
USE master;
REVOKE SHUTDOWN FROM "NT AUTHORITY\SYSTEM";
GO
ログインを削除してfn_my_permissions
SPを実行した後でも、上記の画像の権限がリストされています。
私がこれで得ることができるどんな助けも素晴らしいでしょう。
これにより、権限が取り消されます
REVOKE CONTROL SERVER TO [NT AUTHORITY\SYSTEM]
REVOKE SHUTDOWN TO [NT AUTHORITY\SYSTEM]
テスト
use [master]
GO
GRANT CONTROL SERVER TO [NT AUTHORITY\SYSTEM]
GO
use [master]
GO
GRANT SHUTDOWN TO [NT AUTHORITY\SYSTEM]
GO
EXECUTE AS LOGIN = 'NT AUTHORITY\SYSTEM'
SELECT * FROM fn_my_permissions(NULL,NULL)
REVERT
結果
...(34結果)
REVOKE CONTROL SERVER TO [NT AUTHORITY\SYSTEM]
REVOKE SHUTDOWN TO [NT AUTHORITY\SYSTEM]
EXECUTE AS LOGIN = 'NT AUTHORITY\SYSTEM'
SELECT * FROM fn_my_permissions(NULL,NULL)
REVERT
結果
追加情報
構文について不明な点がある場合、簡単なのは(私の意見では)、GUI内で必要なものを選択し、[スクリプト]ボタンを使用してスクリプトを作成することです。
たとえば、この回答では、CONTROL SERVER
およびSHUTDOWN
からログインNT AUTHORITY\SYSTEM
、それをスクリプト化してから、GUIから削除し、再度スクリプト化して、取り消しステートメントを取得しました。見落としがちでバグが多いことが判明しているため、GUIを介した実行には反対です。