sqlserver用户名和登录名的关系总结

sqlserver用户名和登录名的关系总结

ID:14742903

大小:36.50 KB

页数:3页

时间:2018-07-30

sqlserver用户名和登录名的关系总结_第1页
sqlserver用户名和登录名的关系总结_第2页
sqlserver用户名和登录名的关系总结_第3页
资源描述:

《sqlserver用户名和登录名的关系总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SqlServer用户名和登录名的关系总结登录名:服务器方的一个实体,使用一个登录名只能进入服务器,但是不能让用户访问服务器中的数据库资源。每个登录名的定义存放在master数据库的syslogins表中.用户名:一个或多个登录对象在数据库中的映射,可以对用户对象进行授权,以便为登录对象提供对数据库的访问权限。用户定义信息存放在每个数据库的sysusers表中。SQLSERVER把登录名与用户名的关系称为映射。用登录名登录SQLSERVER后,在访问各个数据库时,SQLSERVER会自动查询此数据库中

2、是否存在与此登录名关联的用户名,若存在就使用此用户的权限访问此数据库,若不存在就是用guest用户访问此数据库(guest是一个特殊的用户名,后面会讲到)。一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。链接或登录SqlS

3、erver服务器时是用的登录名而非用户名登录的,程序里面的链接字符串中的用户名也是指登录名。SQLSERVER中有几个特殊的登录名和用户名:我们常见的dbo(用户名)是指以sa(登录名)或windows administration(Windows集成验证登录方式)登录的用户,也就是说数据库管理员在SQLSERVER中的用户名就叫dbo,而不叫 sa,这一点看起来有点蹊跷,因为通常用户名与登录名相同(不是强制相同,但为了一目了然通常都在创建用户名时使用与登录名相同的名字),例如创建了一个登录名称为me

4、,那么可以为该登录名me在指定的数据库中添加一个同名用户,使登录名me能够访问该数据库中的数据.当在数据库中添加了一个用户me 后,之后以me登录名登录时在该数据库中创建的一切对象(表,函数,存储过程等)的所有者都为me,如me.table1,me.fn_test(),而不是dbo.table1,dbo.fn_test().SQLServer中还有一个特殊的数据库角色public,它存在于每一个数据库中,包括系统数据库,如master、msdb、model和用户数据库,数据库的所有用户都属于publi

5、c角色,并且不能从public角色中删除。在SQLSERVER数据库中,guest帐户是特殊的用户帐户。如果用户使用USEdatabase语句访问的数据库中没有与此用户关联的帐户,此用户就与guest用户相关联。另外SQLSERVER采取登录名-用户名的安全规则,和Oracle里面的schema有点像。SQLSERVER使用所有者进行限定(类似于Oracle中的schema),是因为不同的用户可能创建同名的对象,例如登录名me和登录名you在pubs数据库中分别创建了用户名me和you,这二个用户都创

6、建了testtable这个同名表,而这二个表虽然同名但结构或数据可能完全不同,为了避免调用错误,必须使用所有者名称进行限定.如何来调用别的用户创建的对象呢?例如me用户访问you用户创建的表或访问dbo创建的表. 此种情况,必须同时满足二个条件:1.将me用户的数据库角色设置为db_owner,否则无法访问其他用户(包括dbo用户)创建的对象.(企业管理器->用户,右键菜单<属性>中设置):2.使用所有者进行限定.例如me访问you创建的testtable:select * from you.test

7、table另外,dbo用户作为管理员,系统赋予其所有的权限,可以调用任何用户创建的对象若某个数据库存在2个或2个以上的用户名,如果具有db_owner角色的用户在访问对象时省略了所有者,则系统先查找该用户的对象,若找不到则查找dbo用户是否有同名对象.例如:select * from testtable   或select * from pubs..testtable实验:创建登录名login_ibrahim用此登录名登录“查询分析器”,发现只能查看系统自带的数据库,如master、Northwind

8、、pubs等将登录名login_ibrahim的服务器角色设置为DatabaseCreator(若不设置此项,则无法创建数据库)在“查询分析器”中输入createdatabasetest,然后执行,这会创建一个名为test的数据库查看test数据库拥有的用户名,发现系统会自动创建了dbo和guest这两个用户名。其中dbo用户名对应的登录名为login_ibrahim,不能更改test数据库登录名login_ibrahim所对应的用户名dbo,此时tes

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。