代码之家  ›  专栏  ›  技术社区  ›  Jason Williams

SQL为PC上的所有用户分配读/写权限

  •  0
  • Jason Williams  · 技术社区  · 15 年前

    我需要的是一种简单的方法,允许PC上的所有NT登录都可以访问数据库。

    我想我已经解决了这个问题:在SSMS中,我可以手动将db_datareader/writer角色分配给内置\用户,而且它工作得非常好。

    但是,如果我的安装程序以编程方式执行以下操作,则无法正常工作:

    USE [OurDatabase]
    GO
    EXEC sp_addrolemember N'db_datawriter', N'BUILTIN\Users'
    GO
    EXEC sp_addrolemember N'db_datareader', N'BUILTIN\Users'
    GO
    

    用户被分配了角色,但他们仍然无法访问数据库。我在SSMSE中看到的唯一区别是,在后一种情况下,它们还获得了一个新的“BUILTIN\Users”模式的所有权,我怀疑这可能会把事情搞砸。很明显SSMS做了一些稍微不同的事情。。。

    有人能提出一种方法让它以编程方式工作吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Aaron Bertrand    15 年前

    使用者 是否映射到登录?您是否看到SSMS方法与编程方法的区别?当组登录时,映射到组登录的用户的默认模式是什么 作品

        2
  •  0
  •   BIDeveloper    15 年前

        3
  •  0
  •   Jason Williams    15 年前

    啊,看来SSMS也有一个 创建用户[BUILTIN\Users]以登录[BUILTIN\Users]

    我在尝试做什么的时候,多次打开和关闭权限,在随后的尝试中,用户已经存在,因此SSMS不必理会CREATE命令。因此,当我最终弄明白我需要做什么时,我得到了一个不完整的(满足我需要的)脚本。

    这并不明显,因为在用户属性中看不到该命令的效果;它们出现在SSMS服务器安全\登录部分的用户映射中。

    多亏了Aaron(提到登录让我查看了Security\logins页面,我发现了映射中的差异)