当前位置: 代码迷 >> SQL >> SQL高级一部分一(控制用户权限)
  详细解决方案

SQL高级一部分一(控制用户权限)

热度:51   发布时间:2016-05-05 10:45:50.0
SQL高级部分一(控制用户权限)

创建用户

SQL> create user 用户名  2  identified by 密码;
赋予用户权限
SQL> GRANT create table,create view,create sequence , create session --权限  2  TO 用户名;
用户拥有创建表权限后,还需要赋予用户表空间才能创建表
ALTER USER 用户名 QUOTA 空间大小ON 什么表
SQL> ALTER USER wang QUOTA unlimited   2  ON users;
PS:unlimited无限制,也可以指定多少K。

角色:当不使用角色时,有3个人需要3个权限,就必须把每个权限都赋予用户,而使用角色,就可以把这三个权限都赋予角色,直接把角色赋予用户
创建角色


CREATE ROLE 角色;
SQL> create role wang1;
给角色赋予权限
SQL> GRANT create table,create session , create view  2  TO wang1;


将角色赋予用户
GRANT 角色 TO 用户;

DBA 可以创建用户和修改密码
用户本人可以使用 ALTER USER 语句修改密码
ALTER USER 用户名			  IDENTIFIED BY 新密码;
alter user wangidentfitied by wang

对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限

DBA拥有scott对象,那么DBA就可以把scott对象的权限赋给其他

GRANT	object_priv [(columns)]权限ON	object     对象TO	{user|role|PUBLIC} 用户/角色/所有用户

--WITH GRANT OPTION 使用户同样具有分配权限的权利,简单说,我分享给你了,我允许你也可以分享给别人


分配scott的employees表的查询权限给用户wang

SQL> grant select   2  on scott.employees  3  to wang;

收回对象权限
使用 REVOKE 语句收回权限
使用 WITH GRANT OPTION 子句所分配的权限同样被收回
REVOKE {privilege [, privilege...]|ALL}ON	  objectFROM   {user[, user...]|role|PUBLIC}[CASCADE CONSTRAINTS];
SQL示例
SQL> revoke select   2  on scott.employees  3  from wang;


  相关解决方案