oracle怎么把新建的b用户的全部权限赋予a用户?主要是要求a用户拥有b用户的创建表和删除表的权限,而不单单是拥有b用户里表的增删查改的权限。
1)建议使用
SQL> conn userA/pwd;
SQL> select 'GRANT SELECT ON' || table_name || 'to userB;' from user_tables
得到的结果如下
grant select on emp to userB;
grant select on dept to userB;
grant select on bonus to userB;
grant select on loc to userB;
再把上面得到的结果逐一执行一遍:
SQL> grant select on emp to userB;
SQL> grant select on dept to userB;
SQL> grant select on bonus to userB;
SQL> grant select on loc to userB;
2)不建议
SQL> conn / as sysdba;
SQL> grant select any table on userB
第2)种方法的缺点是授予的权限过大,userB不仅可以访问userA下的所有表,也可以访问其他用户包括sys,system下的所有表。
grant connect,resource to 用户名B
问题可以拆解一下:
想要什么就授权什么:
1.grant create session to a用户; -- 授予连接登陆权限
2.grant create table to a用户; -- 赋予用户创建表的权限
3.grant create view to a用户; -- #赋予用户创建视图的权限
4.grant unlimited tablespace to a用户; -- 授予操作表空间和表的权限
拓展分解:
Oracle 权限:
1.create session 允许用户登录数据库权限
2.create table 允许用户创建表权限
3.unlimited tablespace 允许用户在其他表空间随意建表
Oracle 角色:
1.CONNECT
2.RESOURCE
3.DBA
描述:
1.CONNECT角色:是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
2.RESOURCE角色:是授予开发人员的,能在自己的方案中创建表、序列、视图等。
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
3.DBA角色: 授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限
可以尝试以下,我也记不清是不是可以
在dba用户下实行或者在b用户下实行
grant create table on b用户 to a用户;