将表一的select权限赋给表二,那么就可以在表二中进行查询表一的操作。
数据库管理员(DBA)。
创建用户必须使用是DBA的用户进行登录,本人用System。
(1)、创建新用户:
create user atguigu
identified by atguigu
(2)、创建成功后登录一下,出现错误:
Grant:授予。
GRABNT 权限 to 用户;
(1)、授予新建的用户登录的权限:(grant 。。。 to user)
grant create session
to atguigu
这样就可以登录了。
(2)、授予新建的用户建表的权限:
grant create table
to atguigu
(3)、为表空间声明一个大小:
alter user atguigu quota 5m
on users
(1)(2)(3)都是在DBA(system表)中操作的。
(4)、然后就可以用新建的用户登录,并创建表了:
create table t1(id number(10))
(5)、不能再新建的用户中声明表的大小,因为它没有权限:
alter user atguigu quota unlimited
on users
ORA-01031: 权限不足
--将密码atguigu更改为123.
alter user atguigu
identified by 123
方便:将系统权限与用户的对象权限都封装在角色中;谁要用的话直接把角色赋给它们就行。
create role manager;
grant create session,create table,create view to manager;
SQL> grant manager to atguigu01;
Grant succeeded
grant select,update --select和update权限
on scott.employees --scott用户的employees表
to atguigu --访问scott用户的employees表对象权限给atguigu用户
select * from scott.employees
(1)、更改操作:
SQL> update scott.employees
2 set last_name='BABY'
3 where employee_id=205;
1 row updated
(2)、在scott用户登录下查询,结果显示并没有更改:
--因为忘了在atguigui用户下操作完scott用户下的表后没有进行commit;(提交)操作。
--commit;操作后再去scott用户下查询显示在atguigu下的修改成功了。
附:❌表示不能再授予别的用户;对号表示还可以再授予别的用户。- -❌对应的权限不能再有子类;而对号对应的权限还可以再有子类。
如果再系统用户(system)下将权限分配给其他用户必须写“用户名.表名”;而如果直接再相应的用户下分配本用户中表的权限,则不需要写用户名。
默认的是权限不能再给别人。
(1)、with grant option(使用户同样具有分配权限的权力):
SQL> grant select,update
2 on scott.employees
3 to atguigu
4 with grant option;
Grant succeeded
(2)、public(向数据库中所有用户分配权限):
SQL> grant select,update
2 on scott.employees
3 to public;
Grant succeeded
这样在所有的用户登录下都可以实现select和update。
(1)、
SQL> revoke select
2 on employees
3 from atguigu;
Revoke succeeded
(1)、查询系统权限:
SQL> select * from user_sys_privs;
(2)、结果:
USERNAME PRIVILEGE ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
SCOTT CREATE ANY SYNONYM NO
SCOTT UNLIMITED TABLESPACE NO
SCOTT CREATE ANY VIEW NO
1、如果用户能够登陆到数据库,至少需要哪种权限?是系统权限还是对象权限
CREATE SESSION 系统权限
2、创建表需要哪种权限?
CREATE TABLE
3、将表departments的查询权限分配给用户system
GRANT select
ON departments
TO system
4、从system处收回刚才赋予的权限。
REVOKE select
ON departments
FROM system
5、创建角色dvp,并将如下权限赋予该角色
CREATE PROCEDURE
CREATE SESSION
CREATE TABLE
CREATE SEQUENCE
CREATE VIEW
1)CREATE ROLE dvp;
2)GRANT CREATE PROCEDURE,CREATE SESSION,CREATE TABLE,CREATE SEQUENCE,CREATE VIEW
TO dvp;