none
日志传送中的辅助数据库(只读/备用状态)如何访问? RRS feed

  • 问题

  • 主数据库服务器A和辅助数据库服务器B,两者之间做了日志传送。

    数据库在A上有用户USER1。

    在B上访问数据库时,因为用户USER1没有对应的登录名,而B的数据库又是只读的,无法修改。这种情况下,怎么在B上访问数据库?

    2017年2月13日 14:08

全部回复

  • Copy USER1 to secondary with same pwd/sid as on primary, it should work.
    • 已编辑 rmiao 2017年2月13日 18:08
    2017年2月13日 18:03
  • Or create new login with same sid on both serves and grant db permission for that new login, it should be available on secondary after restoring log.
    2017年2月13日 18:06
  • 登录(login)是在实例级别的,也就是 create login,不是数据库级别,数据库级别是用户(user)

    user 会通过日志传送传过去,login 不会,所以你要做的是 create login 并且通过 with sid=0x123 指定与主服务器同步 login 相同的 sid(可以查 sys.sql_logins 获得 sid)

    2017年2月14日 1:56
  • 登录(login)是在实例级别的,也就是 create login,不是数据库级别,数据库级别是用户(user)

    user 会通过日志传送传过去,login 不会,所以你要做的是 create login 并且通过 with sid=0x123 指定与主服务器同步 login 相同的 sid(可以查 sys.sql_logins 获得 sid)

    我查看了很多资料。按照我的理解,也是这个意思,就是重新建一个,但这样做是否可以啊,没有资料支持啊。

    原来我还想过,直接在LOGIN表中增加一条记录,但不敢这样做。

    2017年2月14日 8:30
  • 因为辅助服务器是只读状态,所以GRANT授权的时候,没法授权,只读状态。。。。
    2017年2月14日 8:32
  • Don't have to grant on secondary server, whatever you do on primary will copied to secondary.
    2017年2月14日 16:14
  • Don't have to grant on secondary server, whatever you do on primary will copied to secondary.
    现在的问题是在辅助服务器的只读数据库的USER,如何让一个登录名跟他对应的问题,SQL官方的文档,都要求对辅助数据库的用户表进行修改的,但目前是只读状态,没法修改,所以官方的办法没法对应。
    2017年2月15日 4:08
  • 登录(login)是在实例级别的,也就是 create login,不是数据库级别,数据库级别是用户(user)

    user 会通过日志传送传过去,login 不会,所以你要做的是 create login 并且通过 with sid=0x123 指定与主服务器同步 login 相同的 sid(可以查 sys.sql_logins 获得 sid)

    我试了试,只使用CREATE LOGIN ,貌似可以,就是不知道有没有别的问题。。。。

    CREATE LOGIN USER1 
    WITH PASSWORD = '1232', SID = 0x6G86FDS699FSDFA66SF9; 


    2017年2月15日 5:09
  • Yes, login should have same sid on both servers.
    2017年2月15日 14:54