共用方式為


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

撤銷之前在 SQL Server 執行個體上授與被授與者的權限,以及該被授與者對任何其他使用者授與的指定權限集。被授與者也能夠撤銷其他使用者所擔任角色的指定權限集。

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

語法

'宣告
Public Sub Revoke ( _
    permission As ServerPermissionSet, _
    granteeNames As String(), _
    revokeGrant As Boolean, _
    cascade As Boolean, _
    asRole As String _
)
'用途
Dim instance As Server
Dim permission As ServerPermissionSet
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(
    ServerPermissionSet permission,
    string[] granteeNames,
    bool revokeGrant,
    bool cascade,
    string asRole
)
public:
void Revoke(
    ServerPermissionSet^ permission, 
    array<String^>^ granteeNames, 
    bool revokeGrant, 
    bool cascade, 
    String^ asRole
)
member Revoke : 
        permission:ServerPermissionSet * 
        granteeNames:string[] * 
        revokeGrant:bool * 
        cascade:bool * 
        asRole:string -> unit 
public function Revoke(
    permission : ServerPermissionSet, 
    granteeNames : String[], 
    revokeGrant : boolean, 
    cascade : boolean, 
    asRole : String
)

參數

  • revokeGrant
    型別:System. . :: . .Boolean
    Boolean 屬性,指定被授與者是否能夠撤銷 SQL Server 執行個體上其他使用者的權限集授與。
    如果為 True,則表示被授與者可以撤銷 SQL Server 執行個體上其他使用者的指定權限集。
    如果為 False,則表示被授與者無法撤銷 SQL Server 執行個體上其他使用者的指定權限集。
  • cascade
    型別:System. . :: . .Boolean
    Boolean 屬性,指定是否也要針對使用者 (亦即,被授與者已授與指定之權限集的對象) 撤銷權限集。
    如果為 True,則針對被授與者以及被授與者授與指定權限集的使用者撤銷 SQL Server 執行個體的所有指定權限集。
    如果為 False,則僅針對被授與者撤銷指定的權限集。
  • asRole
    型別:System. . :: . .String
    String 值,指定撤銷 SQL Server 上其他使用者的指定權限集時,使用者所擔任的角色。您可以針對屬於多個角色之成員的被授與者使用這個參數。

範例

Visual Basic

'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)