oracle——用户和权限管理
oracle 11g 中的用户和权限管理:
用户 ——分为默认的用户和自己创建的用户
(只有用合法的用户账号才能访问oracle数据库)
一、用户
1、oracle 11g中的默认用户(举例三个)
① sys (oracle中权限最大的用户)
数据库中所有数据字典表和视图都存储在 SYS 模式中。SYS用户主要用来维护系统信息和管理实例。
② system(默认的系统管理员)
SYSTEM 是默认的系统管理员,该用户拥有Oracle管理工具使用的内部表和视图。通常通过SYSTEM用户管理数据库用户、权限和存储等
③ scott (普通内置用户)
oracle公司中的第一个员工的名字。在安装oracle中自己制定密码。
2、oracle中的创建新用户
要连接到Oracle数据库,就需要创建一个用户帐户
每个用户都有一个默认表空间和一个临时表空间
CREATE USER命令用于创建新用户,语法如下:
create user 用户名 identified by 密码
[default tablespace taablespace] -- 默认表空间
[temporary tablespace tablespace] -- 临时表空间
- 其中密码应该以字母、下划线、汉字开头。不能以数字开头!!!
3、oracle网页管理登录
step 1 : https ://计算机全名 : 端口号(1158)/em
sys 登录时要将连接身份改为sysdba
system与其他普通用户Scott等登录身份为nomal
二、profile 概要文件
当我们创建用户时候,如果没有指定概要文件,那么oracle就会自作主张将名为default的概要文件赋值给用户。
- 如上图所示 default概要文件就是制定一个用户所占用的资源
举个栗子:
--创建一个用户没有指定概要文件,即默认概要文件为default
create user test1 identified by test1;
--自己在创建一个概要文件的语法如下
create profile pro1 limit
password_life_time 10 -- 口令有效期(10天之内必须改密码)
password_grace_time 2 -- 最大宽限两天(依据上面设定)
failed_login_attemps 2 -- 允许最大失败登录次数
password_lock_time 2; -- 锁定天数
--给test1更改概要文件 用 alter啦
alter user test1 profile pro1;
- 小贴士 万一账户被锁定了 就找system解锁哦 alter user test1 account unlock;
三、权限
执行特定命令 访问数据库对象的权利。
权限有两种类型,系统权限和对象权限
-
系统权限允许用户执行某些数据库操作,如创建表,创建会话就是一个系统权限
授予用户权限,可以是系统权限或者对象权限。
GRANT privilege [,privilege…] TO user [, user|role, PUBLIC…]
[WITH ADMIN OPTION];
说明:包含了WITH ADMIN OPTION,只能是系统权限。收回系统权限REVOKE……FROM……
例:REVOKE create session FROM test1; 对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作 (对某一个特定的对象)
grant……to……
revoke……from……
系统权限::
-- 以下便是创建一个用户能够登录并建表的基本权限
grant create session to test1; —— 连接数据库的权限
grant create table to test1; --建表的权限
grant unlimit tablespace to test1; -- 使用表空间的权限
—— test1给其他用户创建表/删除表的权限
grant create any table to test1;
grant drop any table to test1;
在system下可以查看一个用户拥有几个权限: select * from dba_sys_privs d where d.grantee='TEST1';
– 老铁 ’ ‘中 必须大写!!
系统权限的传递:with admin option
grant create session to test2 with admin option;
-- 在此用户之下创建的用户都将具有create session权限。即具有向下传递性。
- 不会随着该权限的缺失而影响被传递者对该权限的使用。
对象权限::
GRANT SELECT ON SCOTT.EMP TO test3;
GRANT UPDATE ON SCOTT.EMP TO test3;
GRANT UPDATE(某一列) ON SCOTT.EMP TO test3;
GRANT ALL ON SCOTT.EMP TO test3;
--允许用户插入、删除、更新和查询 EMP 表中的记录
对象权限的传递:: with grant option
grant select on scott.emp to tast4 with grant option;
区别
- 对象权限 上游收回权限,下游也跟着被收回
- 系统权限 上游收回权限,下游不影响对该权限的使用。
四、更改与删除用户
alter user user_name identified by new_password;
drop user user_name
drop user user_name cascade; –删除用户模式
拓展:
drop tablespace 表空间名 including contents and datafiles;
五、角色管理 role
角色管理:角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。
(1)创建角色CREATE ROLE,应该具有CREATE ROLE系统权限。
CREATE ROLE role_name;
(2) 授予角色权限,可以是系统权限或者对象权限。
GRANT privilege TO ROLE;
例: grant create session ,create any table, drop any table to role1;
(3) 将角色授予用户
GRANT role TO user;
例: grant role1 to test2;
(4) 从用户收回角色
REVOKE role FROM user;
oracle中的内置角色:
(1) connect角色 包含create session权限
(2) resource 内置资源 包含多种create 权限。
select * from role_sys_privs r where r.role='CONNECT';
-- 查看一个角色所拥有的系统权限
select * from dba_tab_prives r where r.role='CONNECT';
-- 查看一个角色所拥有的对象权限
select * from dba_tab_prives d where d.grantee='SCOTT';
-- 查看一个用户所拥有的系统权限
select * from dba_tab_prives d where d.grantee='SCOTT';
-- 查看一个用户所拥有的对象权限
上一篇: 敏捷项目管理Scrum连载系列之Scrum理论与应用篇(二)
下一篇: 内存管理(一)