Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ データ制御言語 | トリガー、ウィンドウ関数、DCL
SQL最適化とクエリ機能

bookデータ制御言語

メニューを表示するにはスワイプしてください

データ制御言語(DCL)は、リレーショナルデータベース管理システムに保存されたデータへのアクセス制御を行うためのSQLのサブセット。 DCLコマンドは主に、テーブル、ビュー、スキーマなどのデータベースオブジェクトに対する権限の付与や取り消しに関係。

DCLコマンド

主なDCLコマンドは次の2つ:

  1. GRANT:特定の権限をユーザーまたはロールに付与するコマンド;

  2. REVOKE:以前に付与された特定の権限をユーザーまたはロールから取り消すコマンド。

権限

オブジェクト

実装

SQLで特定のユーザーにオブジェクトの権限を付与するには、次のステートメントを使用:

GRANT privileges
ON object
TO {user | role | PUBLIC};

DBで権限を付与できるロールには3種類:

  • user:個々のデータベースユーザー;
  • role:データベースロール。ユーザーに割り当て可能な権限の名前付きグループ(例:admin、developer、analyst);
  • PUBLIC:すべてのユーザーに指定した権限を付与する特別なキーワード。

ロールをユーザーに付与するには、次のステートメントを使用:

GRANT role TO user;

最後に、以前付与した権限を取り消すには、次のステートメントを使用:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

GRANT コマンドを使用して、bankaccounts および userlogs テーブルに対して異なる権限を異なるロールやユーザーに割り当てる方法の例。

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

次に、付与した権限の一部を取り消すことができます:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

テーブルからデータを読み取ることを許可する権限はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  5
some-alt