Oracle|Oracle | 用户、权限、角色管理操作

一、用户管理
1、创建用户
2、修改用户
3、删除用户
二、权限管理
1、系统权限 - 授权操作
2、对象权限 - 授权操作
3、回收权限操作
4、查看用户和权限
三、角色管理
1、系统常用角色
2、查看角色和授权
3、创建角色和授权
一、用户管理 1、创建用户

【例1】创建用户 u_test 密码为 test123
SQL> create user u_test identified by test123;
【例2】创建用户 u_test 密码为 test123,设置表空间为 tbsp_data,临时表空间 tbsp_temp
SQL> create user u_test identified by test123
defualt tablespace tbsp_data
temporary tablespace tbsp_temp;
创建表空间和临时表空间参考链接:Oracle | 表空间、临时表空间、数据文件
创建用户语法:
create user user_name identified by pass_word
[ defualt tablespace tablespace_defualt_name ]// 设置表空间
[ temporary tablespace tablespace_temp_name ]// 设置临时表空间
[ quota [ integer k|m ][ unlimited ] on tablespace_specify1_name ] // 设置表空间磁盘使用量
[ quota [ integer k|m ][ unlimited ] on tablespace_specify2_name ]
[ profiles profile_name ]// 设置资源文件
[ account lock | account unlock]// 设置用户是否加锁,默认不加锁
2、修改用户
修改用户在 表空间 tbsp_data 的磁盘限额为20m
SQL> alter user u_test quota 20m on tbsp_data;
注:修改用户语法,只要将创建用户语法 create 替换成 alter
3、删除用户
SQL> drop user u_test cascade; 删除用户 u_test
注:若用户存有数据库对象,需使用 cascade 进行删除
二、权限管理 数据库权限包括:系统权限 和 对象权限
1、系统权限 - 授权操作 系统权限:如 session 权限(用户是否可以连接到数据库);系统级的DDL操作(CREATE、ALTER、DROP等)
1)登录(以dba数据库管理员身份登录,bda为超级用户),将创建session 和创建table的权限赋予用户 u_test
[oracle@orcl ~]$ sqlplus / as sysdba
SQL> grant create session,create table to u_test;
2)授予用户 u_test1 连接和开发系统权限
[oracle@orcl ~]$ sqlplus / as sysdba
SQL> grant connect,resource to u_test1;
注:connect,resource 都是角色,两种角色包括多种权限,把角色授予用户,用户就会得到该角色拥有的权限,下面会讲解到。
系统权限授权语法:
grant sys_privi | role to user | role | public [ with admin option ]
-- sys_privi:oracle系统权限
-- user:具体的用户名
-- role:角色名,以下会介绍
-- public :代表系统的所有用户
-- with admin option:表示被授权者可以再将权限授予其他用户
2、对象权限 - 授权操作 对象权限:用户对其他用户的表、视图、序列、存储过程、函数等得操作权限
用户u_test1下存在表 test_table,将select, intert,delect,update表test_table操作权限授予给用户u_test2。这样的话,u_test2 就可以对用户u_test1下的表 test_table进行操作。
SQL>grantselect, intert,delect,update on u_test1.test_table to u_test2;
对象权限授权语法:
grant obj_privi | all column on schema.object to user | role | public
[ with admin option ]
[ with hierarchy option ]
-- obj_privi:对象的权限(ALTER、EXECUTE、SELECT、UPDATE、INSERT)
-- user:具体的用户名
-- role:角色名,以下会介绍
-- public :代表系统的所有用户
-- with admin option:表示被授权者可以再将权限授予其他用户
-- with hierarchy option:在对象的子对象上授权给用户
3、回收权限操作 语法:
revoke obj_privi | all column on schema.object to user | role | public cascade constraints
-- cascade constraints : 有关联关系的权限也被撤销
4、查看用户和权限 可以从以下的数据字典表中,查看用户、系统权限、对象权限等信息。但是不同的用户可以查询表的权限有区别。
Oracle|Oracle | 用户、权限、角色管理操作
文章图片
三、角色管理 1、系统常用角色 因为oracle的权限很多,如果需要管理的用户也很多的话,在用户权限分配和管理上就会比较困难。所以就有了角色这个数据库实体。
角色包括一个或多个权限的集合,可以授予任务用户。
Oracle|Oracle | 用户、权限、角色管理操作
文章图片
系统常用的角色:
Oracle|Oracle | 用户、权限、角色管理操作
文章图片
2、查看角色和授权 查看角色被授予哪些权限以及用户被授予了哪些权限和角色,可以查看数据字典表
Oracle|Oracle | 用户、权限、角色管理操作
文章图片
3、创建角色和授权 创建角色语法:
create role role_name [not identified | identified by [password] | [exeternally] | [ grobally] ]
-- identified by password:登录角色的密码
-- identified by exeternally:代表角色名在操作系统下验证
-- identified by grobally:代表用户是oracle安全域中心服务器来验证,此角色由全局用户来使用
将连接和开发系统权限授予用户 u_test1
[oracle@orcl ~]$ sqlplus / as sysdba
SQL>grant connect,resource to u_test1;
【Oracle|Oracle | 用户、权限、角色管理操作】注:connect,resource 都是角色

    推荐阅读