Share via


Grant 方法 (ServerPermissionSet, String, Boolean, String)

授與指定的權限集給被授與者,以及在 SQL Server 執行個體上將所擔任角色的權限集授與其他使用者的能力。

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

語法

'宣告
Public Sub Grant ( _
    permission As ServerPermissionSet, _
    granteeName As String, _
    grantGrant As Boolean, _
    asRole As String _
)
'用途
Dim instance As Server
Dim permission As ServerPermissionSet
Dim granteeName As String
Dim grantGrant As Boolean
Dim asRole As String

instance.Grant(permission, granteeName, _
    grantGrant, asRole)
public void Grant(
    ServerPermissionSet permission,
    string granteeName,
    bool grantGrant,
    string asRole
)
public:
void Grant(
    ServerPermissionSet^ permission, 
    String^ granteeName, 
    bool grantGrant, 
    String^ asRole
)
member Grant : 
        permission:ServerPermissionSet * 
        granteeName:string * 
        grantGrant:bool * 
        asRole:string -> unit 
public function Grant(
    permission : ServerPermissionSet, 
    granteeName : String, 
    grantGrant : boolean, 
    asRole : String
)

參數

  • grantGrant
    型別:System. . :: . .Boolean
    Boolean 屬性,指定被授與者是否能夠將指定的權限集授與 SQL Server 執行個體上的其他使用者。
    如果為 True,則表示被授與者可以將指定的權限集授與 SQL Server 上的其他使用者。
    如果為 False,則表示被授與者無法將指定的權限集授與 SQL Server 上的其他使用者。
  • 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)