Add-SqlLogin
在 SQL Server 实例中创建 Login 对象。
语法
Add-SqlLogin
[-LoginName <String>]
-LoginType <LoginType>
[-DefaultDatabase <String>]
[-EnforcePasswordPolicy]
[-EnforcePasswordExpiration]
[-MustChangePasswordAtNextLogin]
[-Certificate <String>]
[-AsymmetricKey <String>]
[-CredentialName <String>]
[-LoginPSCredential <PSCredential>]
[-Enable]
[-GrantConnectSql]
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Add-SqlLogin
[-LoginName <String>]
-LoginType <LoginType>
[-DefaultDatabase <String>]
[-EnforcePasswordPolicy]
[-EnforcePasswordExpiration]
[-MustChangePasswordAtNextLogin]
[-Certificate <String>]
[-AsymmetricKey <String>]
[-CredentialName <String>]
[-LoginPSCredential <PSCredential>]
[-Enable]
[-GrantConnectSql]
[[-InputObject] <Server>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Add-SqlLogin
[-LoginName <String>]
-LoginType <LoginType>
[-DefaultDatabase <String>]
[-EnforcePasswordPolicy]
[-EnforcePasswordExpiration]
[-MustChangePasswordAtNextLogin]
[-Certificate <String>]
[-AsymmetricKey <String>]
[-CredentialName <String>]
[-LoginPSCredential <PSCredential>]
[-Enable]
[-GrantConnectSql]
[[-ServerInstance] <String[]>]
[-Credential <PSCredential>]
[-ConnectionTimeout <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
说明
Add-SqlLogin cmdlet 在 SQL Server 实例中创建 Login 对象。
示例
示例 1:创建 SqlLogin 类型
PS C:\> Add-SqlLogin -ServerInstance "MyServerInstance" -LoginName "MyLogin" -LoginType "SqlLogin" -DefaultDatabase "OtherDatabase"
Name Login Type Created
---- ---------- -------
MyLogin SqlLogin 8/11/2016 3:19 PM
此命令创建一个名为 SqlLogin 类型的“MyLogin”的 Login 对象。 该命令在名为“MyServerInstance”的服务器实例中将其默认数据库指定为“OtherDatabase”。 此命令会提示输入登录名的密码。
示例 2:创建非对称密钥类型
PS C:\> Add-SqlLogin -ServerInstance "MyServerInstance" -LoginName "MyLogin" -LoginType "AsymmetricKey" -AsymmetricKey "MyKey" -CredentialName "MyCredential"
Name Login Type Created
---- ---------- -------
MyLogin AsymmetricKey 8/11/2016 4:08 PM
此命令创建名为 AsymmetricKey 类型的 MyLogin 的 Login 对象。 它指定名为 MyKey 的非对称密钥。 此外,它还会将名为 MyCredential 的凭据映射到新的 Login 对象。 该命令在名为 MyServerInstance 的服务器实例中运行。
参数
-AccessToken
用于向 SQL Server 进行身份验证的访问令牌,作为用户/密码或 Windows 身份验证的替代方法。
例如,这可用于使用 Service Principal
或 Managed Identity
连接到 SQL Azure DB
和 SQL Azure Managed Instance
。
要使用的参数可以是表示令牌的字符串,也可以是运行 Get-AzAccessToken -ResourceUrl https://database.windows.net
返回的 PSAccessToken
对象。
此参数是模块 v22 中的新增参数。
类型: | PSObject |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-AsymmetricKey
指定 Login 对象的非对称密钥的名称。 如果 LoginType 参数具有值 AsymmetricKey,请指定非对称密钥。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Certificate
指定 Login 对象的证书的名称。 如果 LoginType 具有值 Certificate,请指定证书。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ConnectionTimeout
指定在超时失败之前等待服务器连接的秒数。 超时值必须是介于 0 和 65534 之间的整数。 如果指定了 0,则连接尝试不会超时。
类型: | Int32 |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Credential
指定连接到 SQL Server 的 PSCredential 对象。 若要获取凭据对象,请使用 Get-Credential cmdlet。 有关详细信息,请键入 Get-Help Get-Credential。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-CredentialName
指定 Login 对象的凭据的名称。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-DefaultDatabase
指定 Login 对象的默认数据库。 默认值为 master。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Enable
指示已启用 Login 对象。 默认情况下,“登录”对象处于禁用状态。
始终启用 WindowsGroup 类型对象。 此参数不会影响它们。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Encrypt
连接到 SQL Server 时要使用的加密类型。
此值映射到 Microsoft.Data.SqlClient 驱动程序的 SqlConnection 对象的 Encrypt
属性 SqlConnectionEncryptOption
。
在模块的 v22 中,默认为 Optional
(为了与 v21 兼容)。 在模块的 v23+ 中,默认值为“必需”,这可能会为现有脚本创建中断性变更。
此参数是模块 v22 中的新增参数。
类型: | String |
接受的值: | Mandatory, Optional, Strict |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EnforcePasswordExpiration
指示为 Login 对象强制实施密码过期策略。 此参数仅应用 SqlLogin 类型对象。 此参数表示 EnforcePasswordPolicy 参数。 不必同时指定这两者。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-EnforcePasswordPolicy
指示为 Login 对象强制实施密码策略。 此参数仅应用 SqlLogin 类型对象。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-GrantConnectSql
指示 Login 对象未拒绝连接到数据库引擎的权限。 默认情况下,除非目标服务器是 SQL Azure,否则登录对象将被拒绝连接到数据库引擎的权限。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-HostNameInCertificate
用于验证 SQL Server TLS/SSL 证书的主机名。 如果为强制加密启用了 SQL Server 实例,并且想要使用主机名/shortname 连接到实例,则必须传递此参数。 如果省略此参数,则必须将完全限定域名(FQDN)传递给 -ServerInstance 才能连接到为强制加密启用的 SQL Server 实例。
此参数是模块 v22 中的新增参数。
类型: | String |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-InputObject
指定运行此 cmdlet 的 SQL Server 管理对象 (SMO) 对象。
类型: | Server |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-LoginName
指定 Login 对象的名称。 区分大小写与 SQL Server 实例的区分大小写相同。
类型: | String |
别名: | Name |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LoginPSCredential
指定一个 PSCredential 对象,该对象允许 Login 对象在没有提示的情况下提供名称和密码。
类型: | PSCredential |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-LoginType
将 Login 对象的类型指定为 Microsoft.SqlServer.Management.Smo.LoginType 值。 此参数的可接受值为:
- AsymmetricKey
- 证书
- SqlLogin
- WindowsGroup
- WindowsUser
目前,cmdlet 不支持 ExternalUser 或 ExternalGroup。
类型: | LoginType |
接受的值: | WindowsUser, WindowsGroup, SqlLogin, Certificate, AsymmetricKey, ExternalUser, ExternalGroup |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | False |
接受通配符: | False |
-MustChangePasswordAtNextLogin
指示用户在下次登录时必须更改密码。 此参数仅应用 SqlLogin 类型对象。 此参数表示 EnforcePasswordExpiration 参数。 不必同时指定这两者。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Path
指定运行此 cmdlet 的 SQL Server 的路径。 默认值为当前工作目录。
类型: | String |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ProgressAction
确定 PowerShell 如何响应脚本、cmdlet 或提供程序生成的进度更新,例如由 Write-Progress cmdlet 生成的进度栏。 Write-Progress cmdlet 创建显示命令状态的进度栏。
类型: | ActionPreference |
别名: | proga |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-Script
指示此 cmdlet 返回执行此 cmdlet 执行的任务的 Transact-SQL 脚本。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-ServerInstance
指定 SQL Server 实例的名称。 对于默认实例,请指定计算机名称。 对于命名实例,请使用 ComputerName\InstanceName 格式。
类型: | String[] |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | True |
接受通配符: | False |
-TrustServerCertificate
指示通道是否在绕过证书链以验证信任的同时进行加密。
在模块的 v22 中,默认为 $true
(为了与 v21 兼容)。 在模块的 v23+ 中,默认值将为“$false”,这可能会为现有脚本创建中断性变更。
此参数是模块 v22 中的新增参数。
类型: | SwitchParameter |
Position: | Named |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
Microsoft.SqlServer.Management.Smo.Server
System.String[]
输出
System.Object