/*
oracle学习笔记(用户创建和权限授予)
*/
--每个用户都有一个默认的表空间和一个临时表空间
--创建用户
CREATE USER test2019 --用户名
IDENTIFIED BY test2019 --密码
DEFAULT TABLESPACE test_tableSpace --分配表空间
TEMPORARY TABLESPACE temp; --设定临时空间
--查询用户
SELECT * FROM Dba_Users;
SELECT * FROM All_Users;
SELECT * FROM user_users;
/*
权限:
权限指的是执行特点命令或访问数据库对象的权利
权限有2种类型,系统权限和对象权限
系统权限:允许用户执行某些数据库操作,如创建表就是一个系统权限
对象权限:允许用户对数据库对象(如表、视图、序列等)执行特定操作
角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理
*/
--授予权限
GRANT CONNECT TO test2019;
GRANT RESOURCE TO test2019;
--也可以一次性授予多个权限
GRANT CONNECT, RESOURCE TO test2019;
--授予DBA权限
GRANT DBA TO test2019;
--创建表
CREATE TABLE test_tab(
ID INT,
NAME VARCHAR2(50)
)
--删除用户
DROP USER test2019;
/*
如果用户下面有数据库对象,如 table,view等,那
么删除用户时必须加选项cascade
*/
DROP USER test2019 CASCADE; --使用CASCADE子句删除所有关联的对象
--回收/撤销权限
REVOKE DBA FROM test2019;
REVOKE CONNECT,RESOURCE FROM test2019;
--查看用户所拥有的角色
SELECT * FROM USER_ROLE_PRIVS;
--查看所有角色
SELECT * from dba_roles;
--查询当前用户所拥有的权限
select * from session_privs;
alter user test2019 account lock; --锁住用户
alter user test2019 account unlock; --解锁用户
--修改密码
ALTER USER test2019 IDENTIFIED BY test2019;
--创建角色
CREATE ROLE test_role;
--将创建session的权限授予给角色test_role
grant create session to test_role;
--将connect和resource的权限授予给角色test_role
GRANT connect, resource to test_role;
--角色,即权限的集合
--将角色test_role授予给用户test2019
GRANT test_role TO test2019;