SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server / SQL Database で設定可能な権限を把握する

leave a comment

SQL Server /SQL Database のような SQL Server ベースのデータベースエンジンで、設定可能な権限を確認する際には、権限 (データベース エンジン) / 権限の階層 (データベース エンジン) に記載されている Database Engine Permissions Poster を確認するのが定番の方法となるかと思います。

しかし、この情報は SQL Server 2017 ベースの情報となっており、数世代前の SQL Server の情報となります。

現在の SQL Server ベースの環境でもこの情報は有益ではあるのですが、最新バージョンで増えた権限については確認することはできません。

現在使用しているバージョンのデータベースエンジンで設定可能な権限の一覧を確認したい場合には、sys.fn_builtin_permissions で確認することができます。

SELECT * FROM sys.fn_builtin_permissions(DEFAULT)
ORDER BY class_desc, covering_permission_name, permission_name

image

このシステム関数で取得される情報が、組み込みアクセス許可となるため GRANT / DENY する際にはこの情報を基に権限の調整を行うことができます。

現在設定されている権限については次の情報から確認することができますので、これらの情報を組み合わせることで権限についての基本的な情報は把握することができるかと。

  • ログインしているユーザーに付与されている権限を取得: sys.fn_my_permissions
  • 全ログインに付与されているサーバーレベルの権限を取得: sys.server_permissions
    • sp_helprotect は 2005 以降で追加された権限を取得することができない、下位互換のストアドになります。
  • 全ユーザーに付与されているデータベースレベルの権限を取得: sys.database_permissions
Share

Written by Masayuki.Ozawa

1月 22nd, 2025 at 9:53 pm

Leave a Reply