我在Azure中有一个从Azure商店创建的SQL Server 2014 VM。我想在新VM可用时添加PowerShell CustomExtension来设置我的数据库环境。我有权限问题。如果我以下面的本地管理员身份运行PowerShell代码,我会收到一条消息,指出无法找到Windows NT用户或组,因为本地管理员没有域管理员权限。如果我将以下PowerShell作为域管理员运行,那么该域管理员无权登录SQL Server,这实际上是我想要实现的任务。
externalService.data.totalPages
如果以上以域管理员身份运行,我会收到此错误
Invoke-Sqlcmd:用户' ABC \ myadminusername'登录失败。
如果以上以本地管理员身份运行,我会收到此错误
Invoke-Sqlcmd:Windows NT用户或组' ABC.PROD \我的群组名称'不 找到。再次检查名称。
使用一些方便的PowerShell,是否有一个简单的方法可以解决这个问题?如果我手动执行此操作,我只需登录到SQL Server作为本地管理员,添加用户,列表位置,并在询问时提供域管理员凭据。但我看不出有任何方法可以为这个SQL命令提供这些域管理员凭据。
谢谢你, 大卫
答案 0 :(得分:0)
好的,我在写这个问题的时候确实发现了这个问题。鉴于问题已经写好了,我想我会继续发布并给出答案,以防其他人帮助。
问题似乎是我不应该提供完全合格的域名。以下代码作为本地管理员运行时有效。我刚刚改变了#ABC; ABC.PROD \我的团体名称"到" ABC \我的小组名称",它起作用了。
cls
import-module sqlps –DisableNameChecking -Verbose:$false | Out-Null
$sql = "USE [MASTER]
GO
CREATE LOGIN [ABC\My Group Name] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO"
Invoke-Sqlcmd -Query $sql