SQLサーバーのユーザ権限の割り当て方法
SQL Serverでは、割り当てる権限レベルやオブジェクトの種類によって、ユーザー権限を割り当てる方法は多数あります。通常使用される方法は次のとおりです。
- GRANT文で権限付与:GRANT文を用いると、ユーザーにデータベースオブジェクト(テーブル、ビュー、ストアドプロシージャなど)に対する特定の権限を付与できます。たとえば、以下の構文はユーザーにテーブルに対するSELECT権限を付与します。
GRANT SELECT ON table_name TO user_name;
- DENY によるアクセス拒否: DENY ステートメントを使用すると、ユーザーによるデータベースオブジェクトへのアクセス権を拒否できます。たとえば、次の構文を使用して、ユーザーによるテーブルの DELETE 権限を拒否します。
DENY DELETE ON table_name TO user_name;
- REVOKE文を使用します。たとえば、REVOKE文を使用してテーブルのINSERT権限をユーザーから取り消します。
REVOKE INSERT ON table_name FROM user_name;
- ロールを使用したアクセス制御では、ロールを作成して権限を割り当て、ユーザーをロールに追加します。これにより、権限を変更する必要がある場合、個々のユーザーの権限を逐一変更するのではなく、ロールの権限のみを変更すれば済みます。例えば、次の構文を使用してロールを作成し、SELECT 権限を割り当てます。
CREATE ROLE role_name;
GRANT SELECT ON table_name TO role_name;
次に、ユーザーをロールに追加する:
EXEC sp_addrolemember 'role_name', 'user_name';
ニーズと環境に応じてこれらの方法を組み合わせて使用することで、ユーザー権限を効果的に管理できます。