共用方式為


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

授與指定的權限集給被授與者,以及在資料庫上將所擔任之角色的權限集授與其他使用者的能力。

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

語法

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

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

參數

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

範例

The example shows how to use the Grant 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)