Table.Deny メソッド (ObjectPermissionSet, array<String[], array<String )
テーブルの指定した列について、権限付与対象ユーザーが指定した権限セットにアクセスするのを拒否します。
名前空間: Microsoft.SqlServer.Management.Smo
アセンブリ: Microsoft.SqlServer.Smo (Microsoft.SqlServer.Smo.dll)
構文
'宣言
Public Sub Deny ( _
permission As ObjectPermissionSet, _
granteeNames As String(), _
columnNames As String() _
)
'使用
Dim instance As Table
Dim permission As ObjectPermissionSet
Dim granteeNames As String()
Dim columnNames As String()
instance.Deny(permission, granteeNames, _
columnNames)
public void Deny(
ObjectPermissionSet permission,
string[] granteeNames,
string[] columnNames
)
public:
virtual void Deny(
ObjectPermissionSet^ permission,
array<String^>^ granteeNames,
array<String^>^ columnNames
) sealed
abstract Deny :
permission:ObjectPermissionSet *
granteeNames:string[] *
columnNames:string[] -> unit
override Deny :
permission:ObjectPermissionSet *
granteeNames:string[] *
columnNames:string[] -> unit
public final function Deny(
permission : ObjectPermissionSet,
granteeNames : String[],
columnNames : String[]
)
パラメーター
- permission
型: Microsoft.SqlServer.Management.Smo.ObjectPermissionSet
権限のセットを示す ObjectPermissionSet オブジェクトの値です。
- granteeNames
型: array<System.String[]
権限のセットに対するアクセスを拒否する対象の権限付与対象ユーザーの一覧を示す String 配列値です。
- columnNames
型: array<System.String[]
権限のセットが拒否される対象となる列の一覧を示す String 配列の値です。
実装
IColumnPermission.Deny(ObjectPermissionSet, array<String[], array<String[])
使用例
次のコード例では、一連の権限付与対象アカウントにテーブル要素を選択する権限を許可した後、Deny メソッドを使用してその権限を取り消す方法を示します。 grantees アカウント配列は、定義済みのユーザー アカウントの配列に置き換えてください。
このスニペットには次のデータベース スキーマが使用されます。
//CREATE DATABASE MYTESTDB;
//GO
//USE MYTESTDB;
//GO
//CREATE TABLE TABLE1(
// id int,
// name varchar(32)
//);
//GO
C#
Server srv = new Server("(local)");
Database db = srv.Databases["MYTESTDB"];
Table tb = db.Tables[0];
ObjectPermissionSet objPermissionSet = new ObjectPermissionSet(ObjectPermission.Select);
objPermissionSet.Select = true;
tb.Grant(objPermissionSet, grantees);
String[] tbColNames = new string[tb.Columns.Count];
int n = 0;
foreach (Column i in tb.Columns)
{
tbColNames[n] = i.Name;
n++;
}
tb.Deny(objPermissionSet, grantees, tbColNames);
Powershell
$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("MYTESTDB")
$tb = $db.Tables[0]
$objPermissionSet = new-object Microsoft.SqlServer.Management.Smo.ObjectPermissionSet([Microsoft.SqlServer.Management.Smo.ObjectPermission]::Select)
$objPermissionSet.Select = $TRUE
$tb.Grant($objPermissionSet, grantees)
$tbColNames = @()
foreach ($c in $tb.Columns)
{
$tbColNames = $tbColNames + $c.Name
}
$tb.Deny($objPermissionSet, grantees, $tbColNames)
関連項目
参照
Microsoft.SqlServer.Management.Smo 名前空間