问题描述
我有一个存储在 sql 表中的 sql Server 列表,其中一些在 AG 中。我想比较主副本和辅助副本之间的 sql 登录。我只想知道AG副本的sql登录的SID或密码是否有差异。我正在寻找将输出存储在具有以下格式的数组/哈希表中:
AGPrimaryReplica 登录名 SID 密码 AGSecondaryReplica 登录名 SID密码
我尝试使用以下链接作为参考来构建脚本,但没有让它工作。
https://davegugg.wordpress.com/2018/06/23/comparing-sql-server-logins-on-mirror-servers/
这是我试过的。它没有出错,但没有按照我需要的格式返回正确的信息。不知道我哪里出错了。
$MirrorsqlLoginList = Invoke-sqlCmd -query "select name,sid,is_disabled,password_hash from sys.sql_logins
where name not like '%##%' and name <> 'sa'
order by name;" -Server "Server1"
$PrincipalsqlLoginList = Invoke-sqlCmd -query "select name,password_hash from sys.sql_logins
where name not like '%##%' and name <> 'sa'
order by name;" -Server "Server2"
$DifferentLogins = $PrincipalsqlLoginList | Where { $MirrorsqlLoginList.name -NotContains $_.name -and $MirrorsqlLoginList.sid -notlike $_.sid -or $MirrorsqlLoginList.password_hash -notlike $_.password_hash }
另一个挑战是从表本身获取 AG 副本详细信息。为了测试,我只是使用静态服务器名称。但实际上,有多个副本和AG。如果有人能提供一个有用的例子,会有很大帮助。
如果您需要更多详细信息,请告诉我。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)