Udostępnij za pośrednictwem


Metoda Database.Grant (DatabasePermissionSet, String, Boolean, String)

Udziela określony zestaw uprawnień grantee i przydzielać uprawnień innych użytkowników bazy danych w obszarze zakładanej roli.

Przestrzeń nazw:  Microsoft.SqlServer.Management.Smo
Zestaw:  Microsoft.SqlServer.Smo (w Microsoft.SqlServer.Smo.dll)

Składnia

'Deklaracja
Public Sub Grant ( _
    permission As DatabasePermissionSet, _
    granteeName As String, _
    grantGrant As Boolean, _
    asRole As String _
)
'Użycie
Dim instance As Database
Dim permission As DatabasePermissionSet
Dim granteeName As String
Dim grantGrant As Boolean
Dim asRole As String

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

Parametry

  • granteeName
    Typ: System.String
    A String wartość określająca grantee, aby odmówić dostępu do uprawnień.
  • grantGrant
    Typ: System.Boolean
    A Boolean właściwość, która określa, czy grantee jest możliwość udzielenia określonego zestaw uprawnień innych użytkowników bazy danych.
    Jeśli True, grantee jest możliwość udzielenia określonego zestaw uprawnień innych użytkowników w bazie danych.
    Jeśli False, grantee nie jest możliwość udzielenia określonego zestaw uprawnień innych użytkowników w bazie danych.
  • asRole
    Typ: System.String
    A String wartość, która określa rolę użytkownika zakłada się, gdy użytkownik udziela określony zestaw uprawnień innych użytkowników bazy danych.Ten parametr służy do stypendystów, którzy są członkami więcej niż jednej roli.

Przykłady

W przykładzie pokazano, jak używać Grant metoda z uprawnienia serwera.Metoda jest taka sama dla uprawnień do bazy danych.

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)