授予用户u1对两个表的所有权限
① oracle中有没有赋予一个用户查询另一个用户所有表的权限
||可以的,在用户1中执行:
select 'grant ALL on用户1.'||object_name|| ' to 用户2;'
from user_objects
where (object_type='TABLE' or object_type='VIEW') ;
然后在用户2中把用户1的查询结果运行一遍,就是把用户1的表权限都给用户2,这样用户2就可以查用户1的表和视图了! 在用户2下执行查询语句为:select * from 用户1.表名
当然直接赋予用户2 dba权限也行!
② 试写出“把对SC表的所有权限授予用户U1,并允许他授予别人”的SQL语句
GRANT all ON SC TO U1 WITH GRANT OPTION;
③ oracle 创建用户授予权限问题
--权限要精细化控制
--下面这个plsql可以给u1授予对表空间s1下所有表 增,删,改,查的权限
--u1之后创建的表你可以反复执行这个plsql
begin
for xx in (select 'grant select,insert,update,select on '||owner||'.'||table_name||' to u1' esql from dba_tables where tablespace_name='S1') loop
execute immediate xx.esql
end loop;
end;
/
④ sql2008 把两个表对用户同时授予全部权限,可为什么这个逗号提示错误如图
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]
语法中,on部分仅一个对象,to部分可以多个(逗号隔开内表示可以同时赋容予)
⑤ sql怎么授予对多张表的访问权限啊,格式怎样的,而且只能对表中的一行,就是用户自己资料的那一行访问
没办法动态对多张表授权,但可以一张一张添加热授权
比如:
创建帐号
grant select,update,instert on mydb.a on test@'localhost' identified by 'test';
添加另一张表授权
grant select,update,instert on mydb.b on test@'localhost' ;
不能只对一行做限制
⑥ sql把查询Student表的权限授给用户U1出现错误
grant select on student to u1;
⑦ 把表course的删除权限赋值给新建用户U1,并允许U1授权给其他用户
把表course的删除权限赋值给新建用户U1,并允许U1授权给其他用户?宝贝你看着
⑧ 如何用SQL语句对所有的用户表授权
RANT语句的一般格式为:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。
不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。
表3-4 不同对象类型允许的操作权限
对象 对象类型 操作权限
属性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
视图 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES
数据库 DATABASE CREATETAB
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC即全体用户。
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询Student表权限授给用户U1
GRANT SELECT ON TABLE Student TO U1;
例2
把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
例3
把对表SC的查询权限授予所有用户
GRANT SELECT ON TABLE SC TO PUBLIC;
例4
把查询Student表和修改学生学号的权限授给用户U4
详细信息…
这里实际上要授予U4用户的是对基本表Student的SELECT权限和对属性列Sno的UPDATE权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的SQL语句为:
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
例5
把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
详细信息…
执行此SQL语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,即由U5用户发上述GRANT命令给其他用户。
例如U5可以将此权限授予U6:
GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
同样,U6还可以将此权限授予U7:
GRANT INSERT ON TABLE SC TO U7;
因为U6未给U7传播的权限,因此U7不能再传播此权限。
例6
DBA把在数据库S_C中建立表的权限授予用户U8
GRANT CREATETAB ON DATABASE S_C TO U8;
⑨ 如何用SQL语句为指定用户授权
sql语言用grant语句向用户授予操作权限,grant语句的一般格式为:
grant
<权限>[,<权限>]...
[on
<对象类型>
<对象名>]
to
<用户>[,<用户>]...
[with
grant
option];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。
不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。
表3-4
不同对象类型允许的操作权限
对象
对象类型
操作权限
属性列
table
select,
insert,
update,
delete
all
privieges
视图
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
数据库
database
createtab
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是public即全体用户。
如果指定了with
grant
option子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定with
grant
option子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询student表权限授给用户u1
grant
select
on
table
student
to
u1;
例2
把对student表和course表的全部权限授予用户u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把对表sc的查询权限授予所有用户
grant
select
on
table
sc
to
public;
例4
把查询student表和修改学生学号的权限授给用户u4
详细信息…
这里实际上要授予u4用户的是对基本表student的select权限和对属性列sno的update权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的sql语句为:
grant
update(sno),
select
on
table
student
to
u4;
例5
把对表sc的insert权限授予u5用户,并允许他再将此权限授予其他用户
grant
insert
on
table
sc
to
u5
with
grant
option;
详细信息…
执行此sql语句后,u5不仅拥有了对表sc的insert权限,还可以传播此权限,即由u5用户发上述grant命令给其他用户。
例如u5可以将此权限授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同样,u6还可以将此权限授予u7:
grant
insert
on
table
sc
to
u7;
因为u6未给u7传播的权限,因此u7不能再传播此权限。
例6
dba把在数据库s_c中建立表的权限授予用户u8
grant
createtab
on
database
s_c
to
u8;