grant的时候是可以设置相关的表和列的 grant select on table(column[,column]) to User
创新互联IDC提供业务:成都托管服务器,成都服务器租用,成都托管服务器,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。
单个sqlserver实例:你可以把它理解为一个高档小区,想要进入实例,每一个用户都必须是受信任的,就像现在进小区必须刷门禁卡或者报出来业主的名字,单元楼号码等;
database:你可以把它理解成小区里的楼,首先你必须能进小区(获得实例的访问权),你才有可能进到各个单元楼(database);
schema:架构,你可以理解成一套房子或者N套房子;
table:表,你可以理解成房间;
如果你现在仅仅只是拥有了小区(sqlserver)的访问权限,你可以看到各个楼(DB),甚至你可以进到楼道转悠,但是你没有权限对里面的房子做任何事情;
现在你在这个小区买了一套房子(有schema了),那你可以在你的schema下建立对象删除对象等(自己房子爱咋装修咋装修),但是你不能去搞别人的房子(没法访问其他schema);
现在你朋友邀请你去他家参观(获得了其它schema的访问权限),你可以看到他有什么表,有什么家具,但是你还是不能帮他装修,甚至你连人家家具咋放的你都不能动,你只能看;
如果你买不起房子,只能租房子,那就代表你只对你的房间拥有一定的权限(你可以访问某一个库下某一个schema下的某一个表),你可以添置家具,丢掉你的家具,或者买更好的家具(增删改权限),但是你还是不能动这个表的表结构(你只拥有DML权限,没有DDL权限);
那么谁能动表呢?只能是owner,虽然国情不允许但是你可以这么理解,房东只卖一个房间给你(你现在对这个表有DDL权限了),房间里随便你怎么拆墙,修墙,装修,但是你不能把房间弄没了(可以修改表结构,但是不能把表整没了);
那么什么时候这个房间才完全属于你呢?当你是schema的owner的时候,也就是当你把这套房子全部买了,这时候你可以随便在你的房子里拆东墙补西墙了;
一个DB下可以有多个schema(一栋楼可以有多个业主),每个业主只能玩自己的房子,但是这栋房子最终还是归国家所有的(归DBO),如果DBO要拆房子,你拦不住。。。
用sa连不连的上??
如果连不上就是你的sql2005没有使用sa混合登录
在你的SQL SERVER Management STUDIO 里面的对像资源管理器
数据库上面的那个
什么(SQL Server 9.0.1399 - PEI)上右击属性=安全性,服务器身分验证选择
sqlserver和window身份..你看你是不是选的第一个
1. 查看 SQL 2005 用户所属数据库角色
use yourdb
go
select DbRole = g.name, MemberName = u.name, MemberSID = u.sid
from sys.database_principals u, sys.database_principals g, sys.database_role_members m
where g.principal_id = m.role_principal_id
and u.principal_id = m.member_principal_id
order by 1, 2
go
2. 查看 SQL 2005 登陆帐户所属服务器角色
use master
go
select SrvRole = g.name, MemberName = u.name, MemberSID = u.sid
from sys.server_principals u, sys.server_principals g, sys.server_role_members m
where g.principal_id = m.role_principal_id
and u.principal_id = m.member_principal_id
order by 1, 2
go
3. 查看 SQL 2005 用户被赋予的权限
use yourdb
go
exec sp_helprotect @username = 'user name'
go