Deny 方法 (ObjectPermissionSet, String[], String[], Boolean)

拒絕所指定被授與者在資料表上所指定資料行的指定權限集,以及該被授與者授與其他使用者的指定權限集。

命名空間:  Microsoft.SqlServer.Management.Smo
組件:  Microsoft.SqlServer.Smo (在 Microsoft.SqlServer.Smo.dll 中)

語法

'宣告
Public Sub Deny ( _
    permission As ObjectPermissionSet, _
    granteeNames As String(), _
    columnNames As String(), _
    cascade As Boolean _
)
'用途
Dim instance As Table
Dim permission As ObjectPermissionSet
Dim granteeNames As String()
Dim columnNames As String()
Dim cascade As Boolean

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

參數

  • granteeNames
    型別:array<System. . :: . .String> [] () [] []
    String 陣列值,這個值會指定要拒絕存取權限集的被授與者清單。
  • cascade
    型別:System. . :: . .Boolean
    Boolean 屬性,這個屬性會指定是否也要針對使用者 (亦即,被授與者授與指定權限集的對象) 拒絕存取資料表的指定權限集。
    如果為 True,則針對被授與者以及被授與者授與指定權限集的使用者拒絕指定的權限集。
    如果為 False,則僅針對被授與者拒絕指定的權限集。

實作

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

範例

The following code example shows how to grant an array of grantee accounts permission to select table elements, and then revoke the permission by using the Deny method. The grantees account array is a placeholder for any array of defined user accounts.

The following database schema is used for this snippet.

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