一,授权创建表:
1, 创建用户
在sys超级角色管理员下创建一个用户:
create user zll identified by zll;
创建完了之后可以拿这个账号密码登陆
然后发现输入账号密码登陆不上。这是因为还没有给用户授权让它登陆。
grant create session to zll;
2,创建表
授权之后发现可以登陆进去,发现建表又是权限不足
再给她授权
grant create table to zll;
grant unlimited tablespace to zll;
- 系统权限unlimited tablespace是隐含在dba, resource角色中的一个系统权限. 当用户得到dba或resource的角色时, unlimited tablespace系统权限也隐式受权给用户.
- 系统权限unlimited tablespace不能被授予role, 可以被授予用户.
- 系统权限unlimited tablespace不会随着resource, dba被授予role而授予给用户.
这样表就创建完了,
3,给表增删查改的权利
1,添加数据的权利:
grant select on zll.users to zll;//指名道姓,哪个用户下的哪个表
添加完了要么commit提交,要么rollback退到回滚区。
我们commit提交,可以在sys用户下查看它添加的数据,但是users不行,因为还没有授权。
2,删除数据的权利:
grant delete on zll.users to zll;
grant update(b) on zll.users to zll;//只给users修改b的权利,可以
//给全部修改的权利,也可以给修改一部分的权利。
但为啥它这没有起作用?应该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;