求适用于Azure托管SQL实例的SharePoint 2019 SQL SA认证Web应用创建脚本
前置准备
- 确认Azure托管SQL实例已开启SQL Server认证,SA账号处于可用状态
- 在Azure SQL防火墙规则中添加SharePoint服务器的公网IP,允许其访问实例
- 若不用SA,可在Azure SQL中创建专用SQL登录名,并授予
dbcreator服务器角色权限 - 以SharePoint Farm管理员身份打开SharePoint Management Shell
完整PowerShell脚本
# 加载SharePoint PowerShell模块(如果未自动加载) Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue # 配置参数,根据你的环境修改 $webAppDisplayName = "SP2019-SQLAuth-WebApp" $webAppURL = "http://sp2019.contoso.com" $appPoolName = "SP2019-SQLAuth-AppPool" $appPoolManagedAccount = "CONTOSO\SP_AppPool_Account" # 已注册的SharePoint托管账号 $azureSQLServer = "your-sql-instance.database.windows.net" $contentDBName = "SP2019_Content_SQLAuth" $sqlLogin = "sa" # 或你的专用SQL认证账号 $sqlPassword = ConvertTo-SecureString "YourStrongSA_Password123!" -AsPlainText -Force # 创建SQL认证凭据对象 $sqlCredential = New-Object System.Management.Automation.PSCredential($sqlLogin, $sqlPassword) # 创建Web应用(核心是指定DatabaseCredentials参数) New-SPWebApplication -Name $webAppDisplayName ` -URL $webAppURL ` -ApplicationPool $appPoolName ` -ApplicationPoolAccount (Get-SPManagedAccount $appPoolManagedAccount) ` -DatabaseServer $azureSQLServer ` -DatabaseName $contentDBName ` -DatabaseCredentials $sqlCredential ` -AuthenticationMethod "NTLM" # 按需选择NTLM或Kerberos
关键细节说明
-DatabaseCredentials参数:这是实现SQL认证的核心,通过传入PSCredential对象让SharePoint用SQL账号连接数据库,替代默认的Windows认证- Azure SQL特殊要求:
- 服务器名称必须是
<instance>.database.windows.net格式 - SA密码需符合Azure SQL的复杂度要求(至少8字符,包含大小写、数字、特殊字符)
- 若使用专用SQL账号,需确保该账号有创建数据库的权限(授予
dbcreator角色即可)
- 服务器名称必须是
- 应用池账号仍需是Windows托管账号:这是SharePoint应用池的硬性要求,和数据库的认证方式无关,仅用于运行Web应用的进程身份
验证方法
- 脚本执行完成后,登录SharePoint管理中心,查看「Web应用程序」列表确认新应用已创建
- 登录Azure SQL门户,检查指定的内容数据库是否成功生成
- 访问Web应用的URL,确认页面能正常加载
内容的提问来源于stack exchange,提问作者Amit Kumar Verma
相关产品推荐
相关产品推荐

