Sql Server用户名和登录名的关系总结
2010-06-22 00:00:00 来源:WEB开发网1.将me用户的数据库角色设置为db_owner,否则无法访问其他用户(包括dbo用户)创建的对象.(企业管理器-> 用户,右键菜单 <属性> 中设置) :
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,发现可以创建数据表(创建名为T_ibrahim的数据表),并插入数据。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接