oracle002:给用户创建表,及增删改查的授权

一,授权创建表:
1, 创建用户
在sys超级角色管理员下创建一个用户:

create user zll identified by zll;

创建完了之后可以拿这个账号密码登陆
oracle002:给用户创建表,及增删改查的授权_第1张图片
然后发现输入账号密码登陆不上。这是因为还没有给用户授权让它登陆。

 grant create session to zll;

2,创建表
授权之后发现可以登陆进去,发现建表又是权限不足
oracle002:给用户创建表,及增删改查的授权_第2张图片
再给她授权

 grant create table to zll;

oracle002:给用户创建表,及增删改查的授权_第3张图片
我特么???

grant unlimited tablespace to zll;

在这里插入图片描述

  1. 系统权限unlimited tablespace是隐含在dba, resource角色中的一个系统权限. 当用户得到dba或resource的角色时, unlimited tablespace系统权限也隐式受权给用户.
  2. 系统权限unlimited tablespace不能被授予role, 可以被授予用户.
  3. 系统权限unlimited tablespace不会随着resource, dba被授予role而授予给用户.

这样表就创建完了,
3,给表增删查改的权利
1,添加数据的权利:

grant select on zll.users to zll;//指名道姓,哪个用户下的哪个表

添加完了要么commit提交,要么rollback退到回滚区。
我们commit提交,可以在sys用户下查看它添加的数据,但是users不行,因为还没有授权。
oracle002:给用户创建表,及增删改查的授权_第4张图片

2,删除数据的权利:

 grant delete on zll.users to zll;

oracle002:给用户创建表,及增删改查的授权_第5张图片
3,修改数据的权利:

 grant update(b) on zll.users to zll;//只给users修改b的权利,可以
 //给全部修改的权利,也可以给修改一部分的权利。

oracle002:给用户创建表,及增删改查的授权_第6张图片
但为啥它这没有起作用?应该a是改不了的,只能改b,???
4,给查的权利

grant insert on zll.users to zll;

二,有时候这样一步一步授权太麻烦了,我们想用简单的授权方式
1,创建一个自定义角色

create role man;

2,给自定义角色man创建会话(登陆)的权利:

grant create session to man;

3,把对zll.users的所有权给了自定义角色man。

grant all on zll.users to man;

4,创建fff对象

 create user fff identified by fff;

5,把自定义角色付给fff,fff就可以登陆并且可以有对zll的所有权利,就是zll有啥,fff就也有啥。

grant man to fff;

你可能感兴趣的:(oracle002:给用户创建表,及增删改查的授权)