共用方式為


Revoke 方法 (DatabasePermissionSet, String[], Boolean, Boolean, String)

撤銷之前在資料庫上授與被授與者的權限,以及被授與者對任何其他使用者授與的指定權限集。被授與者也能夠撤銷其他使用者所擔任角色的指定權限集。

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

語法

'宣告
Public Sub Revoke ( _
    permission As DatabasePermissionSet, _
    granteeNames As String(), _
    revokeGrant As Boolean, _
    cascade As Boolean, _
    asRole As String _
)
'用途
Dim instance As Database
Dim permission As DatabasePermissionSet
Dim granteeNames As String()
Dim revokeGrant As Boolean
Dim cascade As Boolean
Dim asRole As String

instance.Revoke(permission, granteeNames, _
    revokeGrant, cascade, asRole)
public void Revoke(
    DatabasePermissionSet permission,
    string[] granteeNames,
    bool revokeGrant,
    bool cascade,
    string asRole
)
public:
void Revoke(
    DatabasePermissionSet^ permission, 
    array<String^>^ granteeNames, 
    bool revokeGrant, 
    bool cascade, 
    String^ asRole
)
member Revoke : 
        permission:DatabasePermissionSet * 
        granteeNames:string[] * 
        revokeGrant:bool * 
        cascade:bool * 
        asRole:string -> unit 
public function Revoke(
    permission : DatabasePermissionSet, 
    granteeNames : String[], 
    revokeGrant : boolean, 
    cascade : boolean, 
    asRole : String
)

參數

  • granteeNames
    型別:array<System. . :: . .String> [] () [] []
    String 陣列,這個陣列會指定要撤銷權限集存取權的被授與者清單。
  • revokeGrant
    型別:System. . :: . .Boolean
    Boolean 屬性,這個屬性會指定被授與者是否能夠撤銷其他資料庫使用者的指定權限集。
    如果為 True,則表示被授與者能夠撤銷其他資料庫使用者的指定權限集。
    如果為 False,則表示被授與者無法撤銷其他資料庫使用者的指定權限集。
  • cascade
    型別:System. . :: . .Boolean
    Boolean 屬性,這個屬性會指定是否也要針對使用者 (亦即,被授與者已授與指定權限集的對象) 撤銷權限集。
    如果為 True,則針對被授與者以及被授與者授與指定權限集的使用者撤銷資料庫的指定權限集。
    如果為 False,則僅針對被授與者撤銷指定的權限集。
  • asRole
    型別:System. . :: . .String
    String 值,這個值會指定使用者撤銷其他資料庫使用者的指定權限集時,該使用者所擔任的角色。您可以針對屬於多個角色之成員的被授與者使用這個參數。

範例

The example shows how to use the Revoke method with server permissions. The method is the same for database permissions.

VB

'Connect to the local, default instance of SQL Server.
Dim svr As Server
svr = New Server()
'Define a ServerPermissionSet that contains permission to Create Endpoint and Alter Any Endpoint.
Dim sps As ServerPermissionSet
sps = New ServerPermissionSet(ServerPermission.CreateEndpoint)
sps.Add(ServerPermission.AlterAnyEndpoint)
'This sample assumes that the grantee already has permission to Create Endpoints. 
'Enumerate and display the server permissions in the set for the grantee specified in the vGrantee string variable.
Dim spis As ServerPermissionInfo()
spis = svr.EnumServerPermissions(vGrantee, sps)
Dim spi As ServerPermissionInfo
Console.WriteLine("=================Before revoke===========================")
For Each spi In spis
    Console.WriteLine(spi.Grantee & " has " & spi.PermissionType.ToString & " permission.")
Next
Console.WriteLine(" ")
'Remove a permission from the set.
sps.Remove(ServerPermission.CreateEndpoint)
'Revoke the create endpoint permission from the grantee.
svr.Revoke(sps, vGrantee)
'Enumerate and display the server permissions in the set for the grantee specified in the vGrantee string variable.
spis = svr.EnumServerPermissions(vGrantee, sps)
Console.WriteLine("=================After revoke============================")
For Each spi In spis
    Console.WriteLine(spi.Grantee & " has " & spi.PermissionType.ToString & " permission.")
Next
Console.WriteLine(" ")
'Grant the Create Endpoint permission to the grantee.
svr.Grant(sps, vGrantee)
'Enumerate and display the server permissions in the set for the grantee specified in the vGrantee string variable.
spis = svr.EnumServerPermissions(vGrantee, sps)
Console.WriteLine("=================After grant=============================")
For Each spi In spis
    Console.WriteLine(spi.Grantee & " has " & spi.PermissionType.ToString & " permission.")
Next
Console.WriteLine("")

PowerShell

$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$arg = [Microsoft.SqlServer.Management.Smo.ServerPermission]::CreateEndpoint

$sps = new-object Microsoft.SqlServer.Management.Smo.ServerPermissionSet([Microsoft.SqlServer.Management.Smo.ServerPermission]::CreateEndpoint)
$sps.Add([Microsoft.SqlServer.Management.Smo.ServerPermission]::AlterAnyEndpoint)
$spis = $srv.EnumServerPermissions("vGrantee", $sps)
Write-Host "=================Before revoke==========================="
Foreach ($spi In $spis)
{
   Write-Host $spi.Grantee "has" $spi.PermissionType " permission."
}
Write-Host " "
$sps.Remove([Microsoft.SqlServer.Management.Smo.ServerPermission]::CreateEndpoint)