用户管理
创建用户
如果不记得表空间了可以先检索一下:
SQL> select TABLESPACE_NAME from user_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
ATOP_TS
UNDO_2
创建用户:
SQL> create user grant_test identified by test default tablespace atop_ts;
User created
删除用户:
SQL> drop user grant_test cascade;
User dropped
权限分类
Oracle的权限可分为角色权限、对象权限和系统权限。
角色权限
Oracle有三个常用的预设角色:connect,resource,DBA。
Connect:连接权限,授予该角色权限之后账号才可以连接数据库,不可以创建实体,不可以创建数据库结构。
Resource:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
对象权限
每个用户默认只能管理自己账号下的对象,如果想要访问其他账号的对象,就需要授权。
Oracle常见的对象有:1、表(Table);2、索引(Index);3、簇(Cluster);4、视图;5、Synonym;6、序列(Sequence);7、过程(Procedure)和函数(Function);8、触发器;9、约束等。
系统权限
允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等。
可通过如下命令查询一共有多少系统权限。
SQL> select count(*) from system_privilege_map;
COUNT(*)
----------
257
权限管理
授予权限
授予角色权限:
SQL> grant connect,resource,dba to grant_test;
Grant succeeded
授予对象权限:
SQL> grant select on ATOP_TEST.AUTH_CONFIG to GRANT_TEST;
//授予后可对ATOP_TEST的AUTH_CONFIG表进行查询。
Grant succeeded
授予单个系统权限:
SQL> grant select any table to grant_test;
Grant succeeded
授予所有系统权限:
SQL> grant all privileges to grant_test;
Grant succeeded
撤销权限
通过Revoke <privilege> from <user>命令可以将用户特定权限撤回。
SQL> revoke select on ATOP_TEST.AUTH_CONFIG from grant_test;
Revoke succeeded
单独赋予的权限要单独撤回才能生效。
常用命令
仅授予用户对表的增删改查权限、对索引的创建删除权限:
SQL> grant connect,select any table,insert any table,update any table,delete any table,create any index,drop any index to grant_test;
Grant succeeded
文章评论