首页 > 代码库 > Oracle学习(十四):管理用户安全

Oracle学习(十四):管理用户安全


--用户(user)
SQL> --创建名叫 grace 密码是password 的用户,新用户没有任何权限
SQL> create user grace identified by password;

验证用户:
密码验证方式(用户名/密码)
外部验证方式(主机认证,即通过登陆的用户名)
全局验证方式(其他方式:生物认证方式、token方式)
优先级顺序:外部验证>密码验证

--权限(privilege)
用户权限有两种:
System:允许用户执行对于数据库的特定行为,例如:创建表、创建用户等
Object:允许与用户访问和操作一个特定的对象,例如:对其他方案下的表的查询

SQL> --给grace用户授予系统权限
SQL> --create session 
SQL> grant create session to grace;
SQL> --create table
SQL> grant create table to grace ;
SQL> --分配空间(修改用户grace的空间为不限制)
SQL> alter user grace quota unlimited on users;

SQL> --对象权限
SQL> --将当前用户emp表的查询的权限授予grace用户
SQL> grant select on emp to grace;

SQL> --admin option 系统权限 不会级联
SQL> -- DBA --> create session --> jeff:管理员授予jeff登陆权限
SQL> grant create session to jeff with admin option;
SQL> -- jeff --> create session --> emi:jeff授予emi登陆权限
SQL> grant create session to emi;
SQL> --管理员撤销jeff的登陆权限,此时emi的登陆权限还在,不会被级联删除
SQL> revoke create session from jeff;

SQL> --GRANT OPTION   撤销对象权限会产生级联
SQL> -- scott-->select on emp ---> jeff:scott用户授予jeff查询emp表的权限
SQL> grant select on emp to jeff with grant option;
SQL> --jeff:-->select on scott.emp   --> emi:jeff授予emi查询scott的emp表的权限
SQL> grant select on scott.emp to emi;
SQL> --scott撤销jeff的查询emp表的权限,此时emi的查询权限也被删除
SQL> revoke select on emp from jeff;

--角色(role)
SQL> --删除角色
SQL> drop role hr_clerk;
SQL> --创建经理角色
SQL> create role hr_mgr;
SQL> --创建普通员工角色
SQL> create role hr_clerk;
SQL> --两个权限  create session,  create table
SQL> --授予普通员工角色登陆权限
SQL> grant create session to hr_clerk;
SQL> --授予经理创建表的权限和普通员工角色的权限
SQL> grant create table,hr_clerk to hr_mgr;


SQL> --grant connect,resouce to scott;connect,resouce系统定义好的角色
SQL> --创建用户并授予权限(普通用户能做的基本功能都有)
SQL> /*
SQL> create user ****
SQL>  grant connect,resouce to ***;
SQL> */

--概要文件和用户
--每个用户只能被关联到一个概要文件
--概要文件:管理账户状态和密码有效期;控制资源消费;