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>grant  select, 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 | 用户、权限、角色管理操作_第1张图片

三、角色管理

1、系统常用角色

因为oracle的权限很多,如果需要管理的用户也很多的话,在用户权限分配和管理上就会比较困难。所以就有了角色这个数据库实体。

角色包括一个或多个权限的集合,可以授予任务用户。

Oracle | 用户、权限、角色管理操作_第2张图片

系统常用的角色:

Oracle | 用户、权限、角色管理操作_第3张图片

2、查看角色和授权

查看角色被授予哪些权限以及用户被授予了哪些权限和角色,可以查看数据字典表

Oracle | 用户、权限、角色管理操作_第4张图片

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;

注:connect,resource 都是角色

你可能感兴趣的:(Oracle | 用户、权限、角色管理操作)