Microsoft SQL Server
データベースのアクセス許可
サーチ…
備考
基本的な構文:
{GRANT| REVOKE | DENY} {PERMISSION_NAME} [ON {SECURABLE}] TO {PRINCIPAL};
- {GRANT | REVOKE | DENY} - 達成しようとしていること
- 助成金:「指定された本人にこの許可を与える」
- 取り消し:「指定された元本からこの許可を取り除く」
- 拒否: "指定されたプリンシパルにこのアクセス権がないことを確認します(つまり、"
DENY SELECT
"は、他のアクセス権に関係なく、このプリンシパルでSELECT
が失敗することを意味します)
- PERMISSION_NAME - 影響を与えようとしている操作。これはセキュリティで保護されたものに依存します。たとえば、ストアドプロシージャの
GRANT SELECT
には意味がありません。 - SECURABLE - アクセス許可に影響を与えようとしているものの名前。これはオプションです 。
GRANT SELECT TO [aUser];
と言っていGRANT SELECT TO [aUser];
完全に許容可能です。それは、「そのため任意のセキュリティ設定できるための手段SELECT
権限が理にかなって、GRANT
その許可を」。 - PRINCIPAL - あなたはアクセス許可に影響を与えようとしています。データベースレベルでは、これはロール(アプリケーションまたはデータベース)またはユーザー(ログインにマップされているかどうか)などです。
権限の変更
GRANT SELECT ON [dbo].[someTable] TO [aUser];
REVOKE SELECT ON [dbo].[someTable] TO [aUser];
--REVOKE SELECT [dbo].[someTable] FROM [aUser]; is equivalent
DENY SELECT ON [dbo].[someTable] TO [aUser];
ユーザーを作成
--implicitly map this user to a login of the same name as the user
CREATE USER [aUser];
--explicitly mapping what login the user should be associated with
CREATE USER [aUser] FOR LOGIN [aUser];
CREATE ROLE
CREATE ROLE [myRole];
ロールメンバーシップの変更
-- SQL 2005+
exec sp_addrolemember @rolename = 'myRole', @membername = 'aUser';
exec sp_droprolemember @rolename = 'myRole', @membername = 'aUser';
-- SQL 2008+
ALTER ROLE [myRole] ADD MEMBER [aUser];
ALTER ROLE [myRole] DROP MEMBER [aUser];
注:ロールメンバーは、任意のデータベースレベルのプリンシパルにすることができます。つまり、役割を別の役割のメンバーとして追加することができます。また、ロールメンバーの追加/削除は冪等である。つまり、追加/削除を試みると、役割のメンバーシップの現在の状態に関係なく、役割に存在/不在(それぞれ)が生じます。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow