方法: データベース オブジェクトに対するアクセス許可を定義する
アクセス許可を定義して、データベース、データベース オブジェクト、およびテーブルの特定の列に対するアクセスを許可したり取り消したりすることができます。 これらのアクセス許可を定義するには、database.sqlpermissions ファイルを更新する必要があります。
database.sqlpermissions ファイルを開くには
Visual Studio で、アクセス許可を定義するデータベース プロジェクトを含むソリューションを開きます。
ソリューション エクスプローラーで、データベース プロジェクト ノードを展開し、[プロパティ] ノードを展開して、Database.sqlpermissions をダブルクリックします。
アクセス許可の付与または取り消し
アクセス許可の付与または取り消しは、次の 3 つのレベルで行うことができます。
データベース レベル CREATE TABLE などの操作へのアクセスを制限するには、このレベルでアクセス許可の付与または取り消しを行います。
データベース オブジェクト レベル テーブルなどの特定のデータベース オブジェクトへのアクセスの種類を制限するには、このレベルでアクセス許可の付与または取り消しを行います。
テーブル列レベル テーブルの特定の列へのアクセスの種類を制限するには、このレベルでアクセス許可の付与または取り消しを行います。
データベース レベルのアクセス許可を付与するには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="GRANT"> <Permission>Operation</Permission> <Grantee>Username</Grantee> </PermissionsStatement>
Operation をアクセス許可を付与する対象の操作に置き換えます。 たとえば、テーブルを作成するためのアクセス許可を付与するには、CREATE TABLE を指定します。
Username をこのアクセス許可を付与する対象のユーザーに置き換えます。
database.sqlpermissions ファイルを保存して閉じます。
データベース レベルのアクセス許可を取り消すには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="REVOKE"> <Permission>Operation</Permission> <Grantee>Username</Grantee> </PermissionsStatement>
Operation をアクセス許可を取り消す対象の操作に置き換えます。 たとえば、テーブルを作成するためのアクセス許可を取り消すには、CREATE TABLE を指定します。
Username をこのアクセス許可を取り消す対象のユーザーに置き換えます。
database.sqlpermissions ファイルを保存して閉じます。
データベース オブジェクトに対するアクセス許可を付与するには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="GRANT"> <Permission>Operation</Permission> <Grantee>Username</Grantee> <Object Name="ObjectName" Schema="SchemaName" Type="OBJECT"/> </PermissionsStatement>
Operation をアクセス許可を付与する対象の操作に置き換えます。 たとえば、テーブルのデータを選択するためのアクセス許可を付与するには、SELECT を指定します。
Username をこのアクセス許可を付与する対象のユーザーに置き換えます。
ObjectName をアクセス許可を付与する対象のオブジェクトに置き換えます。
SchemaName をオブジェクトが格納されているスキーマに置き換えます。
database.sqlpermissions ファイルを保存して閉じます。
データベース オブジェクトに対するアクセス許可を取り消すには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="REVOKE"> <Permission>Operation</Permission> <Grantee>Username</Grantee> <Object Name="ObjectName" Schema="SchemaName" Type="OBJECT"/> </PermissionsStatement>
Operation をアクセス許可を付与する対象の操作に置き換えます。 たとえば、テーブルのデータを選択するためのアクセス許可を付与するには、SELECT を指定します。
Username をこのアクセス許可を付与する対象のユーザーに置き換えます。
ObjectName をアクセス許可を付与する対象のオブジェクトに置き換えます。
SchemaName をオブジェクトが格納されているスキーマに置き換えます。
database.sqlpermissions ファイルを保存して閉じます。
列に対するアクセス許可を付与するには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="GRANT"> <Permission>Operation</Permission> <Grantee>Username</Grantee> <Object Name ="TableName" Schema ="SchemaName" Type ="OBJECT"> <Columns Treatment ="INCLUDE"> <Column Name="ColumnName"/> </Columns> </Object> </PermissionsStatement>
Operation をアクセス許可を付与する対象の操作に置き換えます。 たとえば、テーブルを作成するためのアクセス許可を付与するには、CREATE TABLE を指定します。
Username をこのアクセス許可を付与する対象のユーザーに置き換えます。
TableName をアクセス許可を付与する対象のオブジェクトに置き換えます。
SchemaName をオブジェクトが格納されているスキーマに置き換えます。
ColumnName をアクセス許可を適用する列の名前に置き換えます。 複数の <Column> エントリを指定して複数の列にアクセス許可を適用できます。
database.sqlpermissions ファイルを保存して閉じます。
列に対するアクセス許可を取り消すには
database.sqlpermissions ファイルを開きます。
終了タグ </Permissions> の前に次の XML を追加します。
<PermissionStatement Action="REVOKE"> <Permission>Operation</Permission> <Grantee>Username</Grantee> <Object Name ="TableName" Schema ="SchemaName" Type ="OBJECT"> <Columns Treatment ="INCLUDE"> <Column Name="ColumnName"/> </Columns> </Object> </PermissionsStatement>
Operation をアクセス許可を付与する対象の操作に置き換えます。 たとえば、テーブルを作成するためのアクセス許可を付与するには、CREATE TABLE を指定します。
Username をこのアクセス許可を付与する対象のユーザーに置き換えます。
TableName をアクセス許可を付与する対象のオブジェクトに置き換えます。
SchemaName をオブジェクトが格納されているスキーマに置き換えます。
ColumnName をアクセス許可を適用する列の名前に置き換えます。 複数の <Column> エントリを指定して複数の列にアクセス許可を適用できます。
database.sqlpermissions ファイルを保存して閉じます。