如何在sqlserver建立新用户并关联相应的数据库

如何在sqlserver建立新用户并关联相应的数据库,第1张

--SQLServer:一、 *** 作步骤首先进入数据库级别的【安全性】-【登录名】-【新建登录名】(图1:新建登录名)2.在【常规】选项卡中,如下图所示,创建登陆名,并设置默认的数据库。(图2:设置选项)3.在【用户映射】选项卡中,如下图所示,勾选需要设置的数据库,并设置【架构】,点击【确认】按钮,完成创建用户的 *** 作(图3:选择对应数据库)4.现在我们就可以对TestLog数据库中的User表进行权限的设置了,【表】-【属性】(图4:选择对应表)5.在【权限】选项卡中,如下图所示,依此点击【添加】-【浏览】-【选择对象】(图5:设置访问表的用户)6.在上面点击【确认】后,我们就可以下面的列表中找到对应的权限,如果你还想细化到列的权限的话,右下角还有一个【列权限】的按钮可以进行设置,点击【确认】按钮就完成了这些权限的设置了(图6:权限列表)7.现在就使用TestUser用户登陆数据库了,登陆后如下图所示,现在只能看到一个表了(图7:效果)二、注意事项在上面的第3步骤中需要注意:如果这里没有选择对应的数据库的话,之后去TestLog数据库中是找不到TestUser。(图8:找不到TestUser用户)2.在上面的第3步骤,设置完TestLog数据后,需要点击【确认】按钮,完成创建用户 *** 作,如果这个时候去设置【安全对象】,是无法在【添加】-【特定对象】-【对象类型】-【登陆名】-【浏览】中找到刚刚新建的TestUser用户的。3.其实在数据库级别的【安全性】创建的用户是属于全局的,当设置了某个数据库,比如TestLog之后,这个用户就会出现在这个数据库的【安全性】列表中。如果删除TestLog这个用户,会出现下面的提示。删除了后,这个用户就无法登陆了。需要去对应的数据库中删除用户,如果没有删除又创建,是会报错的。(图9:删除TestUser用户)4.在第6步的【显式权限】列表中,如果选择了【Control】这个选项,那么在【Select】中设置查询【列权限】就没有意义了,查询就不会受限制了。如果设置【列权限】,在正常情况下会显示下图的报错信息:(图10:效果)5.在TestLog数据库的【安全性】-【TestUser】-【属性】-【安全对象】-【添加】-【对象类型】这里有关于数据库级别的一些对象类型可以设置。(图11:其它对象类型)

master.dbo.sysusers 记录的是你数据库的一些数据库用户

master.dbo.syslogins记录的是你数据库的登入名

登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中

用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。

SQLSERVER把登录名与用户名的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库(guest是一个特殊的用户名,后面会讲到)。

一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙

用户名主要用来对应各个库的权限,登录名用来对于实例的登陆权限,

例如同一台服务器上,实例A有这个登录名而实例B没有,你可以登陆实例A;

而用户在每个库下,需要把用户和登录名进行对应;例如你现在是职员,那你登陆进去以后,你是职员的角色,只能做份内的 *** 作;

现在你升职了,你是经理了,只需要修改你的登录名和用户的映射,你就可以获取不同的权限。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10023455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存