– 用户
– 用户是数据库的使用者。
– 用户一般是由DBA来创建和维护的,创建用户后,用户不可以执行任何Oracle操作(包括建立会话),
– 只有赋予用户相关的权限,用户才能执行权限允许范围内的操作。
-- sys管理员 创建用户
create user user1 identified by admin;
-- sys授权 create session 登录权限
grant create session to user1;
-- sys授权 create table 创表权限
grant create table to user1;
-- sys授权 create view 创视图权限
grant create view to user1;
-- sys授权 create synonym 创同义词权限
grant create synonym to user1;
-- 修改用户密码: 用户自身可以修改自身的密码,其他用户要用sys管理员修改
alter user user1 identified by admin;
-- 用户状态 :锁定、解锁,密码过期
alter user user1 account lock;--锁定
alter user user1 account unlock;--解锁
alter user user1 password expire;--使密码过期
-- 删除用户:无法删除正在连接中的用户
drop user user1 cascade;--级联删除用户及用户下所有的对象信息
– 权限:系统权限,对象权限
create user user1 identified by admin;
create user user2 identified by admin;
drop user user2;
– 系统权限
-- 系统授权
-- with admin option :允许user1将create session 的权限授予其他用户
grant create session to user1 with admin option;
-- 回收系统权限
-- revoke from :回收用户权限
-- 不影响其授予别人的权限,即不会级联回收
revoke create session from user1;
– 对象权限
-- 对象授权
--with grant option: 允许user2将在emp的select权限授予其他用户
1.scott用户将表emp的查询权限授予用户user2
grant select on emp to user2 with grant option; -- 单个授权
grant update,delete,insert on emp to user2; --批量授权
--user2授权给user3
grant select on scott.emp to user3 with grant option;
-- 回收对象权限:级联回收,将user2,以及user3的select权限全部收回
revoke select on emp from user2;
– 角色:权限的集合
-- 创建角色
create role comm_role;
-- 给角色授权
grant create session,create table,create view to comm_role;
-- 创建用户,并给用户授予角色
create user user4 identified by 123456;
grant comm_role to user4;
-- user4登陆之后,可查看对应的权限列表
select * from session_privs;
-- 回收用户的角色
revoke comm_role from user4;
-- 从角色回收权限
revoke create table from comm_role;
-- 删除角色
drop role comm_role;
– 预定义角色:DBA 、connect 、 resource
select * from dba_sys_privs where grantee ='DBA';--查看DBA角色权限
select * from dba_sys_privs where grantee ='CONNECT';--查看DBA角色权限
select * from dba_sys_privs where grantee ='RESOURCE';--查看DBA角色权限
create user user5 identified by 123456;
grant connect,resource to user5;
– public : 将create session登陆权限公开化
grant create session to public;