4

私は新しく SQL の基礎を学び始めました。データ操作言語、データ制御言語、データ定義言語について検索しているときに、何か意味がありませんでした。

私の知る限り、Data Control Language には Grant、Deny、Revoke の 3 つのキーワードがあります。

「許可」は、指定されたユーザーが特定のことを実行できるようにします。「取り消し」は、指定されたユーザーが持っているすべてのセキュリティ クリアランスを破棄します。

しかし、私が理解していないのは「拒否」です。

ユーザーが最初に特定のデータベースに対するセキュリティ クリアランス (コンピュータ サイエンスという特別な用語はありますか?) を持っていない場合、データベースを設計するプログラマーは、そのデータベースに対するそのユーザーのクリアランスを「拒否」するのはなぜですか? 意味がありません。

「拒否」を使用する理由と場所を誰か教えてもらえますか?

4

2 に答える 2

5

拒否 - 「アクセスの拒否」のように。

誰かが何かをすることを明示的に許可しないことを意味します。これは、grant と revoke がそれぞれ行う、アクセス権の付与とアクセス権の奪取と同じではありません。

グループにスキーマへのアクセスを許可することを検討してください。ただし、そのグループのサブセットについては、スキーマで定義されたテーブルのサブセットへのアクセスを拒否したいと考えています。「deny」はそうする方法を提供します。

于 2013-07-19T14:13:21.530 に答える
1

DENY コマンドを使用して、ユーザーが特定の許可を受け取ることを明示的に防止できます。

これは、ユーザーが権限を付与されたロールまたはグループのメンバーである可能性があり、例外を作成してそのユーザーが権限を継承できないようにする場合に役立ちます。

于 2013-07-19T14:17:22.657 に答える