SQL Serverで権限を付与・取り消す方法(GRANT/REVOKEの使い方)
SQL Serverでは、データベース内のさまざまなオブジェクトに対して、GRANT文で権限を付与したり、REVOKE文で付与済みの権限を取り消したりできます。本記事では、テーブルを対象とした権限の付与と取り消しの方法を、基本構文と具体的な実行例とともにわかりやすく解説します。
テーブルに対する権限を付与する(GRANT)
テーブルに関するユーザーの権限は、GRANTコマンドで割り当てることができます。指定できる権限は、SELECT、INSERT、UPDATE、DELETE、REFERENCES、ALTER、ALLです。
構文
GRANT 権限 ON オブジェクト TO ユーザー;
権限
ユーザーに付与する権限を指定します。指定できる主な権限は次の通りです。
| 権限 | 説明 |
|---|---|
| SELECT | テーブルに対してSELECT文を実行できる権限 |
| INSERT | テーブルに対してINSERT文を実行できる権限 |
| UPDATE | テーブルに対してUPDATE文を実行できる権限 |
| DELETE | テーブルに対してDELETE文を実行できる権限 |
| REFERENCES | そのテーブルを参照する制約を作成できる権限 |
| ALTER | ALTER TABLE文を実行してテーブル定義を変更できる権限 |
| ALL | 文字どおりすべての権限を意味するわけではなく、ANSI-92標準に基づく権限(SELECT、INSERT、UPDATE、DELETE、REFERENCES)を付与する |
オブジェクト
権限を付与したいデータベースオブジェクトの名前です。テーブルに権限を付与する場合は、テーブル名を指定します。
ユーザー
権限を付与されるユーザー名です。
実行例
ユーザーsmithjに対して、テーブルnhanvien(従業員テーブル)へのSELECT、INSERT、UPDATE、DELETE権限をまとめて付与したい場合は、次のGRANTコマンドを実行します。
GRANT SELECT, INSERT, UPDATE, DELETE ON nhanvien TO smithj;
ALLキーワードを使えば、ANSI-92標準に基づくすべての権限をユーザーsmithjに一度に付与できます。
GRANT ALL ON nhanvien TO smithj;
すべてのユーザーにSELECT権限だけを付与したい場合は、全ユーザーを含むPUBLICグループに対して権限を与えます。
GRANT SELECT ON nhanvien TO PUBLIC;
テーブルに対する権限を取り消す(REVOKE)
いったん付与した権限は、REVOKEコマンドで取り消すことができます。取り消しの対象となるのは、SELECT、INSERT、UPDATE、DELETE、REFERENCES、ALTER、ALLの各権限です。
構文
REVOKE 権限 ON オブジェクト FROM ユーザー;
権限
取り消す権限を指定します。指定できる権限はGRANTの場合と同じで、次の通りです。
| 権限 | 説明 |
|---|---|
| SELECT | テーブルに対してSELECT文を実行できる権限 |
| INSERT | テーブルに対してINSERT文を実行できる権限 |
| UPDATE | テーブルに対してUPDATE文を実行できる権限 |
| DELETE | テーブルに対してDELETE文を実行できる権限 |
| REFERENCES | そのテーブルを参照する制約を作成できる権限 |
| ALTER | ALTER TABLE文を実行してテーブル定義を変更できる権限 |
| ALL | ANSI-92標準に基づく権限(SELECT、INSERT、UPDATE、DELETE、REFERENCES)を一括して取り消す |
オブジェクト
権限を取り消したいデータベースオブジェクトの名前です。テーブルの権限を取り消す場合は、テーブル名を指定します。
ユーザー
権限を取り消されるユーザー名です。
実行例
ユーザーandersonから、テーブルnhanvienに対するDELETE権限を取り消したい場合は、次のREVOKEコマンドを実行します。
REVOKE DELETE ON nhanvien FROM anderson;
テーブルnhanvienに対するANSI-92標準の権限を、ユーザーandersonからすべて取り消したい場合は、ALLキーワードを使用します。
REVOKE ALL ON nhanvien FROM anderson;
PUBLICグループ(全ユーザー)にテーブルnhanvienのSELECT権限を付与済みで、この権限を取り消したい場合は、次のコマンドを実行します。
REVOKE SELECT ON nhanvien FROM PUBLIC;
関連記事:MS SQL Serverでユーザーの権限を管理する方法もあわせてチェックしておきましょう。
-
SQL ServerのPIVOT句とは?クロス集計で行を列に変換する方法を実例付きで解説
SQL Server(Transact-SQL)では、PIVOT句を使用することで、クロス集計(ピボットテーブル)を作成できます。PIVOT句は、テーブル内の行データを列に変換し、集計結果を見やすい形式で表示するための強力な機能です。 下図は、合計値を計算し、行データを列に変換して表示する例です。 PIVOT句の基本構文 SELECT cot_dautien AS bidanh_cot_dautien, [giatri_chuyen1], [giatri_chuyen2], … [giatri_chuyen_n] FROM ( SELECT bang_nguon.cot1
-
【初心者向け】SSMSで学ぶSQL Serverのデータベース基本操作ガイド
こんにちは!前回の記事では、SSMS(SQL Server Management Studio)を使ってSQL Serverをインストールし、接続を確立する方法をご紹介しました。 今回はその続きとして、SQL Server Management Studio(SSMS)の画面操作を通じて、SQL Serverにおけるデータベースの最も基本的な操作方法について詳しく解説していきます。それでは早速始めましょう! #1. 新しいデータベースを作成する 手順1:SQL Serverに接続する まず、SQL Server Management Studioを起動し、SQL Serverに接続します。