Add-SqlLogin

在 SQL Server的實例中建立Login物件。

Syntax

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>]
   [<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>]
   [<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>]
   [<CommonParameters>]

Description

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 驗證的替代方案。

例如,這可用來連線至 SQL Azure DB 或使用 或使用 SQL Azure Managed InstanceService PrincipalManaged Identity

要使用的參數可以是表示令牌的字串,或是 PSAccessToken 執行 Get-AzAccessToken -ResourceUrl https://database.windows.net所傳回的物件。

這個參數是模組 v22 中的新功能。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsymmetricKey

指定 Login 物件的非對稱金鑰名稱。 如果 LoginType 參數具有 AsymmetricKey 值,請指定非對稱密鑰。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Certificate

指定 Login 物件的憑證名稱。 如果 LoginType 具有 Certificate 值,請指定憑證。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

指定在逾時失敗之前等候伺服器連線的秒數。 逾時值必須是介於 0 到 65534 之間的整數。 如果指定了 0,連線嘗試就不會逾時。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

指定連接 SQL Server 的 PSCredential 物件。 若要取得認證物件,請使用 Get-Credential Cmdlet。 如需詳細資訊,請輸入 Get-Help Get-Credential。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CredentialName

指定 Login 物件的認證名稱。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDatabase

指定 Login 物件的預設資料庫。 預設值為 master。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Enable

指出 Login 物件已啟用。 根據預設,會停用Login物件。

WindowsGroup 類型物件一律會啟用。 此參數不會影響它們。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

連接到 SQL Server 時要使用的加密類型。

這個值會對應至 Encrypt Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 屬性 SqlConnectionEncryptOption

在模組的 v22 中,預設為 Optional (,以便與 v21) 相容。 在模組 v23+ 中,預設值會是「強制」,這可能會為現有的腳本建立重大變更。

這個參數是模組 v22 中的新功能。

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnforcePasswordExpiration

表示已針對 Login 物件強制執行密碼到期原則。 此參數僅適用於 SqlLogin 類型物件。 此參數表示 EnforcePasswordPolicy 參數。 您不需要同時指定這兩者。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnforcePasswordPolicy

表示已針對 Login 物件強制執行密碼原則。 此參數僅適用於 SqlLogin 類型物件。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GrantConnectSql

表示 Login 物件不會拒絕連接到資料庫引擎的許可權。 根據預設,登入物件會拒絕連線到資料庫引擎的許可權。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/簡短名稱連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整域名 (FQDN) 傳遞至 -ServerInstance,才能連線到啟用強制加密的 SQL Server 實例。

這個參數是模組 v22 中的新功能。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定 SQL Server 管理物件, (SMO) 此 Cmdlet 運作所在的 SQL Server 物件。

Type:Server
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LoginName

指定 Login 物件的名稱。 區分大小寫與實例 SQL Server 相同。

Type:String
Aliases:Name
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LoginPSCredential

指定 PSCredential 物件,允許 Login 物件提供名稱和密碼,而不提示。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LoginType

將 Login 物件的類型指定為 Microsoft.SqlServer.Management.Smo.LoginType 值。 此參數可接受的值為:

  • AsymmetricKey
  • 憑證
  • SqlLogin
  • WindowsGroup
  • WindowsUser

目前,Cmdlet 不支援 ExternalUser 或 ExternalGroup。

Type:LoginType
Accepted values:WindowsUser, WindowsGroup, SqlLogin, Certificate, AsymmetricKey, ExternalUser, ExternalGroup
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-MustChangePasswordAtNextLogin

表示用戶必須在下一次登入時變更密碼。 此參數僅適用於 SqlLogin 類型物件。 此參數表示 EnforcePasswordExpiration 參數。 您不需要同時指定這兩者。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定執行此 Cmdlet 之 SQL Server 的路徑。 預設值為目前的工作目錄。

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

表示此 Cmdlet 會傳回 Transact-SQL 腳本,以執行此 Cmdlet 執行的工作。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

指定 SQL Server 實例的名稱。 針對預設實例,指定計算機名稱。 針對具名實例,請使用 ComputerName\InstanceName 格式。

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TrustServerCertificate

指出通道是否會在略過憑證鏈結以驗證信任時加密。

在模組的 v22 中,預設為 $true (,以便與 v21) 相容。 在模組 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。

這個參數是模組 v22 中的新功能。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

Microsoft.SqlServer.Management.Smo.Server

System.String[]

輸出

System.Object