次の方法で共有


Table.Deny メソッド (ObjectPermissionSet, String, array<String , Boolean)

権限が与えられている特定のユーザーに対して、特定の権限のセットを拒否します。また、このユーザーがテーブルの特定の列に対する権限のセットを許可した他のユーザーについても、この権限のセットを拒否します。

名前空間:  Microsoft.SqlServer.Management.Smo
アセンブリ:  Microsoft.SqlServer.Smo (Microsoft.SqlServer.Smo.dll)

構文

'宣言
Public Sub Deny ( _
    permission As ObjectPermissionSet, _
    granteeName As String, _
    columnNames As String(), _
    cascade As Boolean _
)
'使用
Dim instance As Table 
Dim permission As ObjectPermissionSet 
Dim granteeName As String 
Dim columnNames As String()
Dim cascade As Boolean

instance.Deny(permission, granteeName, _
    columnNames, cascade)
public void Deny(
    ObjectPermissionSet permission,
    string granteeName,
    string[] columnNames,
    bool cascade
)
public:
virtual void Deny(
    ObjectPermissionSet^ permission, 
    String^ granteeName, 
    array<String^>^ columnNames, 
    bool cascade
) sealed
abstract Deny : 
        permission:ObjectPermissionSet * 
        granteeName:string * 
        columnNames:string[] * 
        cascade:bool -> unit  
override Deny : 
        permission:ObjectPermissionSet * 
        granteeName:string * 
        columnNames:string[] * 
        cascade:bool -> unit
public final function Deny(
    permission : ObjectPermissionSet, 
    granteeName : String, 
    columnNames : String[], 
    cascade : boolean
)

パラメーター

  • granteeName
    型: System.String
    権限のセットへのアクセスを拒否する対象の権限付与対象ユーザーを示す String 値です。
  • columnNames
    型: array<System.String[]
    権限のセットが拒否される対象となる列の一覧を示す String 配列の値です。
  • cascade
    型: System.Boolean
    指定した権限セットを権限付与対象ユーザーから許可されたユーザーについても、テーブルの指定した権限セットへのアクセスを拒否するかどうかを示す Boolean プロパティです。True の場合、特定の権限のセットが拒否されるのは、権限が与えられているユーザーだけでなく、このユーザーが特定の権限のセットを許可した他のユーザーも対象となります。False の場合、特定の権限セットへのアクセスが拒否されるのは、権限付与対象ユーザーだけです。

実装

IColumnPermission.Deny(ObjectPermissionSet, String, array<String[], Boolean)

使用例

次のコード例では、一連の権限付与対象アカウントにテーブル要素を選択する権限を許可した後、Deny メソッドを使用してその権限を取り消す方法を示します。 grantee アカウントは、定義済みのユーザー アカウントに置き換えてください。

このスニペットには次のデータベース スキーマが使用されます。

//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, grantee);

String[] tbColNames = new string[tb.Columns.Count];
int n = 0;
foreach (Column i in tb.Columns)
{
   tbColNames[n] = i.Name;
   n++;
}
tb.Deny(objPermissionSet, grantee, tbColNames, true);

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, grantee)
$tbColNames = @()
foreach ($c in $tb.Columns)
{
   $tbColNames = $tbColNames + $c.Name
}
$tb.Deny($objPermissionSet, grantee, $tbColNames, $TRUE)

関連項目

参照

Table クラス

Deny オーバーロード

Microsoft.SqlServer.Management.Smo 名前空間

その他の技術情報

テーブルの作成、変更、および削除

テーブル

CREATE TABLE (Transact-SQL)