码迷,mamicode.com
首页 > 其他好文 > 详细

用户、权限、角色操作

时间:2019-07-20 21:37:04      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:数据库管理员   center   dmi   特权   sele   strong   角色   连接数据库   空间   

 

一、用户的操作

 

1、用户的创建

语法格式

create user 用户名 identified by 口令(密码)

default tablespace 表空间名

temporary tablespace 表空间名

 

其中

default tablespace;   用户对象默认保存表空间

temporary tablespace; 用户对象临时保存的表空间

 

--用户创建实例

eg:创建用户test 密码也是test,默认表空间users,临时表空间用temp

create user test identified by test

default tablespace users

temporary tablespace temp;

 

 

2、用户的授权  ------登录 sys 授予权限

grant create user to scott

grant alter user to scott

grant drop user to scott

 

 

3、用户的修改

alter user 用户名 identified by 密码

default tablespace 表空间-----------可省略

temporary  tablespace 表空间--------可省略

例如:alter user scott identified by lion-----修改密码

 

alter user 用户名 default tablespace 表空间名--修改用户的默认表空间

 

 

4、用户管理

 

1)创建用户

create user 用户名 identified by 口令(密码) account unlock;

 

2)为用户授予连接数据库的权限

grant connect to 用户---登录 sys ,在sys用户下授予权限

 

grant create session to------方法二

3)为用户授予查询Scott用户下emp表的权限

grant select on scott.emp to 用户名

例如:grant select on scott.emp to ee

 

 

5、删除用户

drop user 用户名

drop user 用户名 cascade---删除所有信息

 

 

 

二、权限操作

 

1、权限分类

1)系统权限:系统规定用户使用数据库的权限。(系统权限是对于用户而言) 

例如:create session  create table create sequence create viewcreate procedure 存储过程等。

 

2)对象权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。

例如:alterselectinsertupdatedelete 

可以修改所有的表的权限。

alter any tale 

可以查询所有的表的权限。

select any table

 

2、权限的查询

1)select * from user_sys_privs -----查询当前用户的系统权限  不要查询 sys

 

2)select * from user_tab_privs -----查询当前用户的对象权限

 

 

3、权限分配

1)给用户分配系统权限

grant 权限 to 用户

例如:给test用户分配权限

grant create user to test            授权可以创建用户

grant alter user to test             授权可以修改用户

grant drop user to test              授权可以删除用户

grant create session to test         授权用户可以连接到数据库

grant create table to test           授权用户可以创建表

grant insert any table to test       插入表的权限

grant update any table to test       修改表的权限

grant drop any table to test         删除表的权限

grant unlimited tablespace to test   授权用户可以使用表空间

2)给用户分配对象权限

grant 权限 on 对象名 to 用户名

grant select on 对象名 to 用户名   将查询权限赋给某人

grant insert on 对象名 to 用户名   将添加数据的权限赋给某人

grant update on 对象名 to 用户名   更新权限赋给用户

grant all on 对象名 to 用户名      将对象上所有的权限都给某人

grant insert on 对象名 to public   将插入权限赋给所有的用户

例如:grant select,insert,update on scott.emp to test,那么Scott用户就有权限操作Scott用户下emp表的查询插入更新的权限

grant all on product to user2; 

grant all on product to public;    public表示是所有的用户,这里的all权限不包括drop

 

3)将权限控制在表列级别上

grant update (列名) on 表名 to 用户名-------只能修改表中的固定列

 

grant update (sal) on scott.emp to test-----test就拥有修改 sal的权限

 

grant insert (列名)on 表名 to 用户名------只能插入表中固定的列

 

注:查询select ,删除delete不能控制到列级别

 

 

 

4、权限的传递 -----可以将自己拥有的权限继续分配给别人

1)系统权限的传递

  grant 权限 to 用户 with admin option

 

2)对象权限的传递

grant 权限 to 用户 with grant option

 

 

5、权限的收回

1、系统权限的收回----sys 用户下操作

revoke 权限 from 用户 

revoke create user from Scott;

 

2、对象权限的收回

revoke 权限 on 对象名 from 用户名

revoke select on scott.emp from ee

 

 

 

三、角色(群)的操作

 

1、创建、删除角色

create role 角色名称

drop role 角色名称  -----删除角色

 

 

2、为角色授权

grant select on 对象名 to 角色名

grant select on scott.emp to 角色名

grant select on scott.dept to 角色名

 

3、收回权限 ---对角色的权限分配与收回与对用户的权限分配与收回操作一样。

revoke 权限 from 角色名

例如:revoke create user from 角色名 

 

4、为用户授予某个角色---拉进角色(群)

grant 角色 to 用户名

 

注:系统中默认建好的几个常用角色

DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 

 

RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 

 

CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。

 

Oracle数据用户有两种途径获得权限:

1)直接向用户授予权限

2)将权限授予给角色,再将角色授予给一个或多个用户。使用角色能够更加方便和高效地对权限进行管理,所以数据库管理员通常使用角色向用户授予权限,而不是直接向用户授予权限。

 

 

用户、权限、角色操作

标签:数据库管理员   center   dmi   特权   sele   strong   角色   连接数据库   空间   

原文地址:https://www.cnblogs.com/wyx666/p/11219224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!