设为首页 加入收藏

TOP

SqlServer2008之关于”***对象无效“错误(二)
2015-11-21 01:57:46 来源: 作者: 【 】 浏览:1
Tags:SqlServer2008 关于 对象 无效 错误
于默认DBO 架构 go create table tb1 (姓名 varchar(8),性别 char(2)) --这个表就属于sch架构 go create schema sch go create table sch.tb2(姓名 varchar(8),性别 char(2),年龄 int) -- 赋予df这个用户查询sch架构中的对象的权限. go grant select on schema::sch to df go setuser 'df' --切换用户df select * from tb2 -- 此时报告"对象名无效" 因为tb2此时为默认的DBO架构,而实际上tb2属于sch架构. --带上架构名称,就可以查询了 go select * from sch.tb2 go setuser -- 切换到sa ---切换到xhl setuser 'xhl' --不能查询,是因为没有权限 select * from sch.tb2 go setuser --切换sa --给df用户赋默认架构 alter user df with default_schema=sch go setuser 'df' --切换df -- 此时不需要指定sch 也可以了,如果架构中还有其他对象,也可以查询 select * from tb2 go setuser --切换sa --创建第三张测试表,同样的是sch架构下 create table sch.tb3 (id int,uname varchar(8)) go --切换用户df setuser 'df' ---可以进行查询 select * from tb3 go ---但是无法进行数据插入,因为没有插入权限 insert into tb3 values (1,'abcde') --拒绝了insert权限 go setuser --赋插入权限 grant insert on schema::sch to df --切换用户df setuser 'df' go ---可以进行数据插入 insert into tb3 values (1,'abcde') --OK! ---查询结果 select * from tb3 GO Grant alter on schema::sch to df -- 使df 这个用户对架构中的数据对象有可更改的能力。 --错误 --无法对sa、dbo、实体所有者、information_schema、sys 或您自己授予、拒绝或撤消权限。 GO Use master go Grant control server to df -- 使df这个用户能够控制服务器。 --错误 --无法对sa、dbo、实体所有者、information_schema、sys 或您自己授予、拒绝或撤消权限。 setuser go use schtest go --创建架构sch1 create schema sch1 go -- 修改对象的架构tb2表的架构由sch 转移到sch1 alter schema sch1 transfer sch.tb2 go --创建一个新用户,同时指定默认schema,默认属于DBO create login yhy with password='sj1234',default_database=master GO use schTest GO create user yhy for login yhy with default_schema=sch --属于sch --切换用户yhy setuser 'yhy' --查询表,对象名'tb2' 无效。 select * from tb2 go setuser --赋架构权限 grant select on schema::sch1 to yhy --切换用户yhy setuser 'yhy' go select * from tb2 ---还是无效,因为不在同一个schema go setuser go alter user yhy with default_schema=sch1 --更改yhy的默认架构 GO --由于yhy不是当前用户,所以无法进行查询 select * from tb2 --显示当前用户 GO select user GO --切换用户yhy setuser 'yhy' -- 此时就可以进行查询了,如果架构中还有其他对象,也可以查询 go select * from tb2 --显示当前用户 select user go setuser go use master go ---删除用户 drop user df drop user xhl drop user yhy ---删除登录名 drop login df drop login yhy drop login xhl --删除数据库 drop database schTest
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLServer 触发器----增删改触发.. 下一篇数据库触发器DB2和SQLServer的异同

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: