在我的生产系统上,我使用CPSDOM \ mconnors登录SQL Server。当我执行' SELECT CURRENT_USER;'它返回' CPSDOM \ mconnors'。
在我的测试系统上,我使用CPSDOM \ mconnors登录SQL Server。当我执行' SELECT CURRENT_USER;'它会返回' dbo'。
有人可以帮我理解发生了什么吗?这是基于配置设置的差异吗?
提前致谢。
答案 0 :(得分:0)
SQLServer上的登录和用户之间存在差异。
每个数据库都有一组用户和一组登录。登录是服务器范围的,用户是每个数据库。登录可以是您的Windows用户帐户或SQLServer内部帐户(例如sa)。
登录映射到每个数据库的用户,因此在生产系统中,您的Windows用户(登录名)映射到具有相同名称的用户。在测试系统中,他们只是将您的登录信息映射到内置的dbo用户。
您不应该依赖您的登录名与Windows帐户同名,当您为sql server设置安全性时,它会默认将您的Windows用户映射到同名的新sql用户,但有时人们会映射它预先定义了sql用户,有时用于开发/测试其中一个“管理员”。已经存在的用户。
您可以在SQLServer管理工作室的安全部分或单个数据库的用户部分中看到此映射。