ServiceMasterKey Class

The ServiceMasterKey object represents a Microsoft SQL Server service master key.

Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)

Syntax

'Declaration
<SfcElementTypeAttribute("MasterKey")> _
Public NotInheritable Class ServiceMasterKey _
    Inherits SqlSmoObject
'Usage
Dim instance As ServiceMasterKey
[SfcElementTypeAttribute("MasterKey")]
public sealed class ServiceMasterKey : SqlSmoObject
[SfcElementTypeAttribute(L"MasterKey")]
public ref class ServiceMasterKey sealed : public SqlSmoObject
[<SealedAttribute>]
[<SfcElementTypeAttribute("MasterKey")>]
type ServiceMasterKey =  
    class
        inherit SqlSmoObject
    end
public final class ServiceMasterKey extends SqlSmoObject

Remarks

A service master key is the lop layer in the encryption hierarchy. It is used to encrypt all the lower layers of the encryption hierarchy, such as database master keys, certificates, asymmetric and symmetric keys. The service master key is generated by Windows and secured by the Windows data protection API. It can only be opened by the Windows service account under which it was created, or by a user who knows both the service account name and its password.

To get the ServiceMasterKey object properties, users can be a member of the public fixed server role.

To set the ServiceMasterKey object properties, users must have CONTROL SERVER permission on the server or be a member of the sysadmin fixed server role.

To back up or restore the service master key, users must have CONTROL SERVER permission on the server or be a member of the sysadmin fixed server role.

Examples

Using Encryption

Inheritance Hierarchy

System.Object
  Microsoft.SqlServer.Management.Smo.SmoObjectBase
    Microsoft.SqlServer.Management.Smo.SqlSmoObject
      Microsoft.SqlServer.Management.Smo.ServiceMasterKey

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.