web-dev-qa-db-ja.com

SQL Server 2016で「NT AUTHORITY \ SYSTEM」の権限を取り消すことができません

私は知っていることをすべて試し、成功することなく数時間グーグルで過ごしました。ログインCONTROL SERVERSHUTDOWNおよびNT AUTHORITY\SYSTEM権限を取り消す必要があります。

これを実行すると

EXECUTE AS LOGIN = 'NT AUTHORITY\SYSTEM'
SELECT * FROM fn_my_permissions(NULL,NULL)
REVERT

...出力は次のとおりです。

enter image description here

私が試したこと:

ログインを完全に削除し、次のコマンドを実行します(さまざまな権限がリストされています)。

USE master;  
REVOKE SHUTDOWN FROM "NT AUTHORITY\SYSTEM";
GO

ログインを削除してfn_my_permissions SPを実行した後でも、上記の画像の権限がリストされています。

私がこれで得ることができるどんな助けも素晴らしいでしょう。

1
Jordan

これにより、権限が取り消されます

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

結果

enter image description here

...(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

結果

enter image description here


追加情報

構文について不明な点がある場合、簡単なのは(私の意見では)、GUI内で必要なものを選択し、[スクリプト]ボタンを使用してスクリプトを作成することです。

たとえば、この回答では、CONTROL SERVERおよびSHUTDOWNからログインNT AUTHORITY\SYSTEM、それをスクリプト化してから、GUIから削除し、再度スクリプト化して、取り消しステートメントを取得しました。見落としがちでバグが多いことが判明しているため、GUIを介した実行には反対です。

enter image description here

1
Randi Vertongen