-
権限を設定する場合、ユーザーやロールに関係なく、権限を設定する対象となります。アプリケーション ロールが特殊であり、他のロールおよびユーザーと相互排他的な関係にあることを除けば、データベース ロールとメンバーはアクセス許可の点で非常に密接な関係にあります。ユーザーは同時に複数のデータベース ロールに所属することができ、各ロールには異なる権限が与えられる場合があります。現時点では、拒否 (禁止) 設定がない限り、ユーザーが実際の権限を取得する原則は「結合」です。たとえば、ロール A はデータ テーブル B の読み取りを禁止されていますが、ロール C はデータ テーブルを読み取ることができます。
B さん、この時点では、ロール A とロール C に属するユーザーは禁止されているため、まだデータ テーブル B を読み込むことができません。
権限の対象はサーバーとデータベースに分けられ、これら 2 つに個別に権限を設定できます。次の説明を参照してください。
サーバー権限の指定 (1) オブジェクト エクスプローラーでサーバーを右クリックし、[プロパティ]を選択します。
(2) ダイアログボックスを「権限」に切り替えます。
(3) 「ログイン名またはロール」で権限を設定したいオブジェクトを選択し、「明示的な権限」でそれぞれ権限を確認します。
完了したら、図 15-21 に示すように、[OK] ボタンをクリックします。
図15-21に示すように、サーバーに対する権限の設定です。 「承認者」とは、現在 SQL Server にログインしている承認者です。
サーバーのログイン名。「許可」は、現在のすべてのログイン名で設定できる許可です。「許可」がチェックされている場合は、sa が選択したオブジェクトに許可を与えることを意味します。次に、他のログインにそれらを許可します。「拒否」これは使用が禁止されているだけです。
これら 3 つのオプションの選択は、「拒否」がチェックされている場合は、「許可」と「許可されている」が自動的にクリアされ、「許可されている」がチェックされている場合は、「拒否」がクリアされ、「許可」が選択されます。 。
「ログイン名またはロール」は、権限が設定されているオブジェクトです。閲覧者は、「追加」ボタンをクリックして他のログイン名またはロールを指定できます。ただし、すべての組み込みサーバー ロールは権限を変更できません。公的な役割。
現在選択されているログインまたはロールの権限を表示するには、「有効な権限」ボタンをクリックします。これは、有効な権限は図 15-21 で設定されるだけでなく、ログインが属するロールにも依存するためです。したがって、図 15-21 には、この設定で定義された権限のみが表示され、デフォルトの既存の権限は表示されません。
図 15-21 サーバー権限の設定とデータベース権限の指定 (1) オブジェクト エクスプローラーで電子書籍データベースを選択し、右クリックして [プロパティ] を選択します。
(2) ダイアログボックスを「権限」に切り替えます。
(3) 図15-22に示すように、「ユーザーまたはロール」で権限を設定するオブジェクトを選択し、「明示的な権限」で権限を確認し、完了したら「OK」ボタンをクリックします。
オブジェクトの権限 (1) オブジェクト エクスプローラーで電子書籍データベースを選択し、「データ テーブル」を開き、「注文」データ テーブルを選択し、右クリックして「プロパティ」を選択します。
(2) ダイアログボックスを「権限」に切り替えます。
(3) 「追加」ボタンをクリックし、ダイアログで権限を変更したいユーザー、データベースロール、またはアプリケーションロールを指定します。
(4) 図15-23に示すように、「ユーザーまたはロール」で権限を設定するオブジェクトを選択し、「明示的な権限」で権限を確認し、完了したら「OK」ボタンをクリックします。
図15-21と図15-23の操作方法は全く同じですが、サーバー、データベース、オブジェクトの権限が別々に設定され、設定できるオブジェクトも異なります。図 15-21 では、ログイン名とサーバー ロールに対して権限を指定できます。
図 15-23 では、ユーザー、データベース ロール、およびアプリケーション ロールに対して権限を指定できます。もう 1 つの違いは、指定できる権限が異なることです。
図 15-22 データベース権限の設定
図 15-23 オブジェクトの権限と権限の設定
SQL Server で設定できる権限は非常に複雑で、サーバーとデータベースのプロパティは 94 個あります。その重要な項目を表 15-4 に示します。
表 15-4 重要な権限の説明
許可内容の説明
CONTROL は、所有権に似た機能を被付与者に与えます。被付与者には実際に次の安全な権利があります。
アイコンに定義されているすべての権限
ALTER 特定のセキュリティ保護可能なオブジェクトのプロパティ (所有権を除く) を変更する機能を付与します。特定の範囲で
ALTER 権限がスコープに付与されると、スコープを変更、作成、または削除する権限も付与されます。
含まれるセキュリティ オブジェクトの機能
ALTER ANY <サーバーのセキュリティ保護可能なオブジェクト> サーバーのセキュリティ保護可能なオブジェクトの個々のインスタンスを作成、変更、または削除する機能を付与します。
ALTER ANY <データベース セーフ オブジェクト> データベース セーフ オブジェクトの個々のインスタンスに CREATE、ALTER、または DROP を付与します。
能力
TAKE OWNERSHIP を使用すると、被付与者は付与されたセキュリティ オブジェクトの所有権を取得できます。
CREATE <サーバー セキュリティ オブジェクト> サーバー セキュリティ オブジェクトを作成する権限を被付与者に付与します。
CREATE <データベース セキュリティ オブジェクト> データベース セキュリティ オブジェクトを作成する権限を被付与者に付与します。
VIEW DEFINITION により、被付与者はメタデータにアクセスできるようになります
表15-4の「セキュリティオブジェクト」とは、「ロールの作成」の「ロール」など、権限設定操作のオブジェクトを指します。
ここではこれが安全なオブジェクトです。
T-SQL を使用してアクセス許可を設定する T-SQL でアクセス許可を設定するには、GRANT (付与)、DENY (拒否)、および REVOKE (取り消し) の 3 つのステートメントを使用できます。
これら 3 つのステートメントには多くの用途があり、その基本的な形式は次のとおりです。
GRANT ALL または権限名 ON オブジェクト TO ユーザーまたはロール名 WITH オプション
REVOKE ALL または権限名 ON オブジェクト TO ユーザーまたはロール名 CASCADE
DENY ALL または権限名 ON オブジェクト TO ユーザーまたはロール名 CASCADE
各ステートメントには、次のように、アクセス許可名、オブジェクト、およびユーザー (ロール) の 3 つの要素があります (Ch151524Grant.sql)。
電子書籍を使用する
David に OBJECT::dbo.members の選択を許可します
OBJECT::dbo.Orders に対する参照 (MemberID) の付与
許可オプション付きのデイビッドへ
上記のステートメントは、それぞれ David に権限を付与するために Grant ステートメントを使用していますが、オブジェクトの内容は異なりますので、オブジェクト名を使用してください。
「OBJECT::」で始まり、フルネームが続き、できれば所有者が続きます。 2 番目の Grant ステートメントは、Orders オブジェクトに作用する MemberID を表す特別なオブジェクト「(MemberID) ON OBJECT:: dbo.Orders」に作用します。
フィールドで、この列の表示権限を David に付与します。同時に、「WITH GRANT OPTION」を追加することは、David がこの権限を他の人に付与できることを意味します。これは、図 15-23 の「with Grant」と同等です。
Revoke ステートメントと Deny ステートメントでは、最後に Cascade を追加できます。このキーワードの機能は、ユーザーが To の後に他のユーザーに付与できるアクセス許可を取り消すこと、つまり「付与済み」をキャンセルすることです。
利用可能なアクセス許可を表示します。利用可能なアクセス許可が多数あるため、T-SQL では選択できるオプションがないため、GRANT、DENY、および
REVOKE する場合は、権限を設定する前に、まず権限名を知っておく必要があります。読者は sys.fn_builtin_permissions を表示できます。
3 つのシステム データ テーブル sys.database_permissions および sys.server_permissions を図 15-24 に示します。
図 15-24 利用可能な権限の表示 図 15-24 の「Permission_name」は、Grant、DENY、または に適用できる利用可能な権限の名前です。
声明を取り消します。
権限の内容の表示 現在のログイン名とユーザーの権限の内容を表示するには、図 15-25 に示すように、sp_helprotect ストアド プロシージャを実行します。
示されています。
図 15-25 の Grantee は権限を付与するユーザーの名前であり、Grantor は他のユーザーに権限を付与するユーザーの名前です。
sp_helprotect ストアド プロシージャの後には、オブジェクト名、ユーザー名、付与者名を表す最大 4 つのパラメーターを使用できます。4 番目のパラメーターは、クエリ オブジェクトのアクセス許可またはステートメントのアクセス許可をそれぞれ表す o または s です。