ProxyAccount Class

The ProxyAccount class represents a SQL Server Agent proxy account.

Inheritance Hierarchy

System.Object
  Microsoft.SqlServer.Management.Smo.SmoObjectBase
    Microsoft.SqlServer.Management.Smo.SqlSmoObject
      Microsoft.SqlServer.Management.Smo.NamedSmoObject
        Microsoft.SqlServer.Management.Smo.Agent.AgentObjectBase
          Microsoft.SqlServer.Management.Smo.Agent.ProxyAccount

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

Syntax

'Declaration
Public NotInheritable Class ProxyAccount _
    Inherits AgentObjectBase _
    Implements IAlterable, ICreatable, IDroppable, IRenamable,  _
    IScriptable
'Usage
Dim instance As ProxyAccount
public sealed class ProxyAccount : AgentObjectBase, 
    IAlterable, ICreatable, IDroppable, IRenamable, IScriptable
public ref class ProxyAccount sealed : public AgentObjectBase, 
    IAlterable, ICreatable, IDroppable, IRenamable, IScriptable
[<SealedAttribute>]
type ProxyAccount =  
    class 
        inherit AgentObjectBase 
        interface IAlterable 
        interface ICreatable 
        interface IDroppable 
        interface IRenamable 
        interface IScriptable 
    end
public final class ProxyAccount extends AgentObjectBase implements IAlterable, ICreatable, IDroppable, IRenamable, IScriptable

The ProxyAccount type exposes the following members.

Constructors

  Name Description
Public method ProxyAccount() Initializes a new instance of the ProxyAccount class.
Public method ProxyAccount(JobServer, String) Initializes a new instance of the ProxyAccount class on the specified SQL Server Agent Service, with the specified name.
Public method ProxyAccount(JobServer, String, String) Initializes a new instance of the ProxyAccount class on the specified SQL Server Agent Service with the specified name and credential.
Public method ProxyAccount(JobServer, String, String, Boolean) Initializes a new instance of the ProxyAccount class on the specified SQL Server Agent Service with the specified name and credential. It also specifies whether the proxy account is enabled.
Public method ProxyAccount(JobServer, String, String, Boolean, String) Initializes a new instance of the ProxyAccount class on the specified SQL Server Agent Service with the specified name and credential. It also specifies whether the proxy account is enabled.

Top

Properties

  Name Description
Public property CredentialID Gets the ID value that uniquely identifies the proxy agent credential.
Public property CredentialIdentity Gets the credential identity.
Public property CredentialName Gets or sets the name of the credential.
Public property Description Gets or sets a textual description of the proxy account.
Public property ID Gets the ID value that uniquely identifies the proxy account.
Public property IsEnabled Gets or sets the Boolean property value that specifies whether the proxy account is enabled or not.
Public property Name Gets or sets the name of the object. (Inherited from NamedSmoObject.)
Public property Parent Gets or sets the JobServer object that is the parent of the ProxyAccount object.
Public property Properties Gets a collection of Property objects that represent the object properties. (Inherited from SqlSmoObject.)
Public property State Gets the state of the referenced object. (Inherited from SmoObjectBase.)
Public property Urn Gets the Uniform Resource Name (URN) address value that uniquely identifies the object. (Inherited from SqlSmoObject.)
Public property UserData Gets or sets user-defined data associated with the referenced object. (Inherited from SmoObjectBase.)

Top

Methods

  Name Description
Public method AddLogin Adds a Microsoft Windows login account to the proxy account.
Public method AddMsdbRole Adds a Microsoft SQL Server database role to the proxy account.
Public method AddServerRole Adds a Microsoft SQL Server server role to the proxy account.
Public method AddSubSystem Adds a Microsoft SQL Server subsystem to the proxy account.
Public method Alter Updates any ProxyAccount object property changes on an instance of Microsoft SQL Server.
Public method Create Creates a job on the instance of Microsoft SQL Server as defined by the ProxyAccount object.
Public method Discover Discovers a list of type Object. (Inherited from SqlSmoObject.)
Public method Drop Removes an existing proxy account.
Public method EnumLogins Enumerates a list of Microsoft Windows login accounts associated with the referenced proxy account.
Public method EnumMsdbRoles Enumerates a list of Microsoft SQL Server database roles associated with the referenced proxy account.
Public method EnumServerRoles Enumerates a list of Microsoft SQL Server server roles associated with the referenced proxy account.
Public method EnumSubSystems Enumerates a list of Microsoft SQL Server subsystems associated with the referenced proxy account.
Public method Equals (Inherited from Object.)
Protected method FormatSqlVariant Formats an object as SqlVariant type. (Inherited from SqlSmoObject.)
Protected method GetContextDB Gets the context database that is associated with this object. (Inherited from SqlSmoObject.)
Protected method GetDBName Gets the database name that is associated with the object. (Inherited from AgentObjectBase.)
Public method GetHashCode (Inherited from Object.)
Protected method GetPropValue Gets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected method GetPropValueOptional Gets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected method GetPropValueOptionalAllowNull Gets a property value of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Protected method GetServerObject Gets the server of the SqlSmoObject object. (Inherited from SqlSmoObject.)
Public method GetType (Inherited from Object.)
Public method Initialize() Initializes the object and forces the properties be loaded. (Inherited from SqlSmoObject.)
Public method Initialize(Boolean) Initializes the object and forces the properties be loaded. (Inherited from SqlSmoObject.)
Protected method IsObjectInitialized Verifies whether the object has been initialized. (Inherited from SqlSmoObject.)
Protected method IsObjectInSpace Verifies whether the object is isolated or connected to the instance of SQL Server. (Inherited from SqlSmoObject.)
Public method Reassign Reassign the job steps that refer to the current proxy account name to a new proxy account name.
Public method Refresh Refreshes the object and retrieves properties when the object is next accessed. (Inherited from SqlSmoObject.)
Public method RemoveLogin Removes a Microsoft Windows login account from the referenced proxy account.
Public method RemoveMsdbRole Removes a Microsoft SQL Server database role from the referenced proxy account.
Public method RemoveServerRole Removes a Microsoft SQL Server server role from the referenced proxy account.
Public method RemoveSubSystem Removes a Microsoft SQL Server subsystem from the referenced proxy account.
Public method Rename Renames a proxy account.
Public method Script() Generates a Transact-SQL script that can be used to re-create the SQL Server Agent proxy account.
Public method Script(ScriptingOptions) Generates a Transact-SQL script that can be used to re-create the SQL Server Agent proxy account as specified by the scripting options.
Protected method SetParentImpl Sets the parent of the SqlSmoObject to the newParent parameter. (Inherited from SqlSmoObject.)
Public method ToString Returns a String that represents the referenced object. (Inherited from SqlSmoObject.)
Public method Validate Validates the state of an object. (Inherited from SmoObjectBase.)

Top

Events

  Name Description
Public event PropertyChanged Represents the event that occurs when a property is changed. (Inherited from SqlSmoObject.)
Public event PropertyMetadataChanged Represents the event that occurs when property metadata changes. (Inherited from SqlSmoObject.)

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method IAlienObject.Discover Discovers any dependencies. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.GetDomainRoot Returns the root of the domain. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.GetParent Gets the parent of this object. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.GetPropertyType Gets the type of the specified property. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.GetPropertyValue Gets the value of the specified property. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.GetUrn Gets the Unified Resource Name (URN) of the object. Do not reference this member directly in your code. It supports the SQL Server infrastructure. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.Resolve Gets the instance that contains the information about the object from the Unified Resource Name (URN) of the object. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.SetObjectState Sets the object state to the specified SfcObjectState value. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method IAlienObject.SetPropertyValue Sets the property value. (Inherited from SqlSmoObject.)
Explicit interface implemetationPrivate method ISfcPropertyProvider.GetPropertySet Gets the interface reference to the set of properties of this object. (Inherited from SqlSmoObject.)

Top

Remarks

Proxy accounts allow for the impersonation of logins, server roles, and database roles when executing a job step in any subsystem other than Transact-SQL. In SQL Server Management Objects (SMO), the ProxyAccount object allows programmatic control over proxy accounts. The ProxyAccount object describes the relationship between an alternative (proxy) login account, a subsystem that is used for job step execution, and a list of Microsoft SQL Server logins, server roles, and database roles.

To get ProxyAccount object properties, users must be a member of the SQLAgentOperatorRole on the MSDB database, or be a member of the sysadmin fixed server role.

To set ProxyAccount object properties, users must be a member of the sysadmin fixed server role.

To create or drop a proxy account, users must be a member of the sysadmin fixed server role.

To add or remove subsystems from the proxy account, users must be a member of the sysadmin fixed server role.

Thread Safety

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

Examples

Scheduling Automatic Administrative Tasks in SQL Server Agent

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.

See Also

Reference

Microsoft.SqlServer.Management.Smo.Agent Namespace

Other Resources

Scheduling Automatic Administrative Tasks in SQL Server Agent

Automated Administration Tasks (SQL Server Agent)

sp_add_proxy (Transact-SQL)

sp_grant_proxy_to_subsystem (Transact-SQL)