首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server域名和用户名格式

问Server域名和用户名格式
EN

Database Administration用户
提问于 2018-03-19 10:19:22
回答 1查看 8.3K关注 0票数 2

我正在SQLServerManagementStudio2018中执行一个SQL脚本。在我的脚本中,我需要指定一个用户(包括域--不确定是否需要服务器名)。

因此,我创建了一个用户sam,将用户类型设置为SQL user without login,将用户角色设置为db_datareader和db_datawriter。

然后我执行我的脚本,但是它给了我错误:User or role 'MHT.sam' does not exist in this database.

但我几乎可以肯定,我已经将这个用户添加到数据库中(请参阅下面的图片以进行二次检查)。Is我的用户和域名格式正确吗?你认为我做错了什么?

这里是我的域和服务器:

EN

回答 1

Database Administration用户

发布于 2018-03-19 10:52:47

您可能正在混合Server登录和数据库用户。

Introduction

Server登录是允许用户连接到Server实例的帐户。Server登录可以是.

  • Server实例中存在的本机Server登录名
  • 来自本地服务器或的Windows帐户,该帐户被链接(映射)到server实例

这类帐户的例子如下:

  • sa (本机Server通过身份验证的登录)
  • 授权\系统(本地Windows认证登录)
  • MHT\sam (Active认证登录)

在具有图形用户界面的(SSMS)中创建用户时,首先要创建Server登录(Windows身份验证或Server身份验证)。

现阶段的不同之处是:

  • Windows身份验证帐户不需要密码
  • 通过Server身份验证的帐户需要密码

当您填写了初始信息后,通常会切换选项卡并配置User映射S。

在“用户映射”选项卡中,将Server登录名映射到数据库用户。在大多数情况下,您将对数据库用户使用相同的名称。在其他情况下,您可能会创建一个完全不同的名称。

重要事项:数据库用户在数据库中拥有权限/权限。Server登录可以访问Server实例。

在你的案子里.

...you将权限/权限分配给数据库用户sam。但是,sam不知道他链接到SQL login MHT\sam,这并不重要,因为您将数据库权限/权限分配给数据库用户,而不是SQL Server登录。

可能导致sam和MHT\sam

之间的差异

当您(或其他人)创建MHT\sam Server身份验证登录时,在切换到User映射部分后,数据库用户被截断为sam。

SQL服务器Windows身份验证登录\ General

这是决定您是要创建本机Server登录还是Windows身份验证登录的位置。

SQL服务器Windows身份验证登录区用户映射

这是将Server登录链接到新创建的数据库用户或将Server登录链接到已经存在的数据库用户的位置。

溶液

代码语言:javascript
复制
exec sp_addrolemember N'RunStoredProcedure', N'sam'
go
exec sp_addrolemember N'MonitoringRole', N'sam'
go

解释

Server身份验证的登录MHT\sam链接到数据库用户sam,数据库用户D38现在已被授予数据库角色RunStoredProcedure和MonitoringRole。当MHT\sam登录到Server实例并连接到他的数据库时,他拥有分配给数据库用户sam的权限/权限。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/201645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档