在SQL2008中新建一个用户,为其指定数据库,需要有所有表查询权限和视图创建权限,应该怎么进行控制?
可以查询源数据库中的信息, 但没有源数据库中信息修改的权限,可以创建视图, 如何实现? 展开
1、在数据库本机用使用cmd指令调出命令行窗口,再用 sqlplus / as sysdba登录到数据库中。并且用对要赋权限的表所有者连接数据库,否则后续赋权限会失败。
2、创建用户create user test identified by test123;创建test用户,密码设置为test123。
3、授权test用户的连接、资源权限。grant connect,resource to test。
4、指定表授权查询权限。grant select on user.tablename to tes。
5、用新建登录数据库进行验证,我们首先来试试delete删除数据的功能,结果报错无法执行,说明我们添加的用户没有删除权限。
6、再来验证select查询功能,顺利查找到指定数据。新建用户并指定查询权限功能实现。同时查询没有赋权限的表,同样被拒。
1、使用windows身份验证登陆数据库
2、选择新建登录名
3、建立用户选择默认数据库
4、设置服务器角色
5、设置用户映射
以下是选择项的解释
public 公众成员
db_owner 该用户是数据库的拥有者,它拥有了对数据库的修改、删除、新增数据表,执行大部分存储过程的权限。
db_denydatawriter 禁止这个用户写入数据
db_datareader 可以读出数据
6、安全对象不用管,设置状态
7、回到登陆界面用另一个身份验证登陆新建的用户
8、对其他的数据库进行操作时报错
9、查询建立用户时规定的数据库的表
10、修改表数据报错
11、创建视图
至此楼主的问题全部解决!!!鼓掌~~~~
一点一点操作截图上传不容易,楼主满意请采纳!!!
按照你所述, 操作测试后发现,新建用户可查询,无修改权限。。
但在视图那新建用户可以删除源视图,可以控制它不能对数据库中已存在的视图修改、删除权限,只能查看原来存在的视图及创建视图。。在线等
use [database]
Grant select to [userName]
GRANT CREATE VIEW TO [userName]
use [database]
Grant select to [userName]
GRANT CREATE VIEW TO [userName]
你好,执行后,用户可以对源数据库中查询,无修改权限。。
但是建立视图时报错:指定的架构名称 "dbo" 不存在,或者您没有使用该名称的权限。
这个是什么原因造成的?
加个架构dbo的控制权限;
GRANT CONTROL ON SCHEMA::[dbo] TO [userName]