Sql Server主副本和辅助副本间账号同步以及权限同步
问题描述
SqlServer如果配置了AlwaysOn,其数据库账号信息同步会出现问题。
我遇到的情况是在主副本添加了账号信息,且给某个数据库添加了权限,这个账号会同步至辅助副本,但是数据库角色信息没有同步,也就是数据库权限信息没有同步至辅助副本。
这是一个比较头疼的问题,因为直接在辅助副本添加不了权限信息或数据库角色信息,因为辅助副本只读。
解决方式
以下是我采用的解决方法,用于主副节点同步账号和权限信息:
1.先在主副本建立建立登录账号以及赋予数据库角色和权限
2.如果在辅助节点有账号但是没有角色和权限信息,则直接把副本节点的登录账号删除(安全性中的登录名),如果本来只有主副本有账号直接进入第3步
3.查询主副本的词账号的sid信息
SELECT * FROM [dbName]..Sysusers
4.在辅助副本建立账号(这时会同步权限信息)
CREATE LOGIN [ogg_wkc] WITH PASSWORD='?',SID=?,
DEFAULT_DATABASE=[dbNames],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF