Skip to content

Server Permission Resource

Synopsis

Manages SQL Server server-level permissions for logins and server roles. Supports Grant, Grant With Grant, and Deny states.

Type

OpenDsc.SqlServer/ServerPermission

Capabilities

  • Get
  • Set
  • Delete
  • Export

Properties

serverInstance

SQL Server instance name.

Type: string
Required: Yes
Access: Read/Write
Default value: None

connectUsername

Username for SQL authentication.

Type: string
Required: No
Access: Write-Only
Default value: None

connectPassword

Password for SQL authentication.

Type: string
Required: No
Access: Write-Only
Default value: None

principal

Name of the principal (login or server role).

Type: string
Required: Yes
Access: Read/Write
Default value: None

permission

Server-level permission (e.g., ConnectSql, ViewServerState, ControlServer).

Type: string
Required: Yes
Access: Read/Write
Default value: None

state

Permission state. Accepts Grant, GrantWithGrant, or Deny.

Type: string
Required: No
Access: Read/Write
Default value: Grant

grantor

Grantor of the permission.

Type: string
Required: No
Access: Read-Only
Default value: None

_exist

Whether the permission should exist.

Type: bool
Required: No
Access: Read/Write
Default value: true

Examples

Example 1 — Grant a permission

$resourceInput = @'
serverInstance: .
principal: AppUser
permission: ViewServerState
state: Grant
'@

dsc resource set -r OpenDsc.SqlServer/ServerPermission --input $resourceInput
resource_input=$(cat <<'EOF'
serverInstance: .
principal: AppUser
permission: ViewServerState
state: Grant
EOF
)

dsc resource set -r OpenDsc.SqlServer/ServerPermission --input "$resource_input"

Example 2 — Deny a permission

$resourceInput = @'
serverInstance: .
principal: RestrictedUser
permission: ConnectSql
state: Deny
'@

dsc resource set -r OpenDsc.SqlServer/ServerPermission --input $resourceInput
resource_input=$(cat <<'EOF'
serverInstance: .
principal: RestrictedUser
permission: ConnectSql
state: Deny
EOF
)

dsc resource set -r OpenDsc.SqlServer/ServerPermission --input "$resource_input"

Example 3 — Configuration document

$schema: https://aka.ms/dsc/schemas/v3/bundled/config/document.json
resources:
  - name: Grant view server state
    type: OpenDsc.SqlServer/ServerPermission
    properties:
      serverInstance: "."
      principal: MonitoringLogin
      permission: ViewServerState
      state: Grant

Exit codes

Code Description
0 Success
1 Error
2 Invalid JSON
3 Invalid argument
4 Unauthorized access
5 Invalid operation