失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > sqlserver 微信昵称_sql server用户名和登录名的区别和联系

sqlserver 微信昵称_sql server用户名和登录名的区别和联系

时间:2023-10-09 15:11:27

相关推荐

sqlserver 微信昵称_sql server用户名和登录名的区别和联系

在SQLSERVER数据库中,guest帐户是特殊的用户帐户。如果用户使用USE database语句访问的数据库中没有与此用户关联的帐户,此用户就与guest用户相关联。

另外SQLSERVER采取登录名-用户名的安全规则,和Oracle里面的schema有点像。SQLSERVER使用所有者进行限定(类似于Oracle中的schema),是因为不同的用户可能创建同名的对象,例如登录名me和登录名you在pubs数据库中分别创建了用户名me和you,这二个用户都创建了testtable这个同名表,而这二个表虽然同名但结构或数据可能完全不同,为了避免调用错误,必须使用所有者名称进行限定.

如何来调用别的用户创建的对象呢?例如me用户访问you用户创建的表或访问dbo创建的表. 此种情况,必须同时满足二个条件:

1.将me用户的数据库角色设置为db_owner,否则无法访问其他用户(包括dbo用户)创建的对象.(企业管理器-&gt 用户,右键菜单 &lt属性&gt 中设置) :

2.使用所有者进行限定.

例如me访问you创建的testtable:

select * from you.testtable

另外,dbo用户作为管理员,系统赋予其所有的权限,可以调用任何用户创建的对象.

若某个数据库存在2个或2个以上的用户名,如果具有db_owner角色的用户在访问对象时省略了所有者,则系统先查找该用户的对象,若找不到则查找dbo用户是否有同名对象.例如:

select * from testtable 或

select * from pubs..testtable

实验:

l 创建登录名login_ibrahim

l 用此登录名登录“查询分析器”,发现只能查看系统自带的数据库,如master、Northwind、pubs等

l 将登录名login_ibrahim的服务器角色设置为Database Creator(若不设置此项,则无法创建数据库)

l 在“查询分析器”中输入create database test,然后执行,这会创建一个名为test的数据库

l 查看test数据库拥有的用户名,发现系统会自动创建了dbo和guest这两个用户名。其中dbo用户名对应的登录名为login_ibrahim,不能更改test数据库登录名login_ibrahim所对应的用户名dbo,此时test数据库的dbo用户名,其对应的登录名有两个,一个是login_ibrahim,另一个是sa(没想到吧^_^,因为sysadmin 固定服务器角色的成员会自动映射到 dbo。)

l 创建登录名login_ibrahim2,不设置任何服务器角色,将可访问数据库设置为test

l 打开test数据库的用户名列表,会发现系统会为登录名login_ibrahim2自动创建一个同名的用户名login_ibrahim2,然后再创建一个名为T_ibrahim的数据表

l 此时用login_ibrahim2登录SQLSERVER,发现不能在test数据库中创建表

l 用login_ibrahim登录SQLSERVER,为login_ibrahim2用户名授予对test数据的db_ddladmin权限

l 此时用login_ibrahim2登录SQLSERVER,发现可以创建数据表(

如果觉得《sqlserver 微信昵称_sql server用户名和登录名的区别和联系》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。