Oracle学习(17)【DBA向】:管理用户

本文深入探讨了数据库用户管理及权限配置的核心概念,包括创建用户、限制资源使用、密码管理、分配角色与权限,以及如何关联用户与角色。详细介绍了用户与方案的关系,以及如何通过SQL命令进行权限的授予、撤销与角色的创建、关联。

管理用户

用户管理: 概览

l在指定区域内创建用户(表空间users).


l制定配额以限制存储的使用.


l使用描述文件限制资源的使用.


l通过密码鉴别用户


l通过描述文件管理密码角色(种植密码并锁定用户).


l分配权限给角色,分配角色给用户.





数据库用户和方案

l方案就是属于某一用户的所有对象的集合.
l用户名和方案名往往是通用的.
l一个用户只能关联一个方案.
l创建用户时系统会自动创建一个同名方案


方案对象
触发器
索引
视图
序列
存储程序单位
同义字
自定义数据类型
数据库链接

数据库用户帐户

每个数据库用户帐户具备:

一个唯一的用户名
一个验证方法
一个默认的表空间
一个临时表空间
一个用户概要文件
一个消费群
一个锁状态
每个表空间的配额.
权限和角色



预定义帐户: SYS 和SYSTEM

SYS 帐户(数据库拥有者):
拥有 DBA 权限
拥有 ADMIN OPTION  的所有权限
拥有 startup, shutdown, 以及若干维护命令
拥有数据字典

SYSTEM 帐户拥有DBA 权限.

这些帐户并非用于常规操作



创建用户




验证用户

l密码验证方式(用户名/密码)
l外部验证方式(主机认证)
l全局验证方式(其他方式:生物认证方式、token方式)




管理员验证

操作系统安全:
DBA 必须拥有创建和删除文件的操作系统权限
普通数据库用户不应具有拥有创建和删除文件的操作系统权限

管理员安全:
SYSBA 和 SYSOPER 通过密码文件或操作系统实现连接审定.
密码文件使用名称鉴别 DBA 用户.
OS 验证并不记录特定用户.
对于 SYSDBA  和 SYSOPER 来说OS验证优先于密码文件认证.


解锁用户帐户和重置密码











权限

用户权限有两种:

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



系统权限





对象权限

l赋予对象权限:
l选择对象类型.
l选择对象.
l选择权限.



使用 ADMIN OPTION   撤销系统权限




使用 GRANT OPTION   撤销对象权限

注意:grant option只对DML语句起作用,例如select






角色

角色的优点

l易于权限管理
l动态权限管理
l选择有效的权限


关联权限到角色,关联角色到用户





预定义角色和权限

角色

权限

CONNECT

CREATE   SESSION

RESOURCE

CREATE   CLUSTER,   CREATE   INDEXTYPE,   CREATE

OPERATOR,   CREATE   PROCEDURE,   CREATE

SEQUENCE,   CREATE   TABLE,   CREATE   TRIGGER,

CREATE   TYPE

SCHEDULER_ADMIN

CREATE   ANY   JOB,   CREATE   EXTERNAL   JOB,

CREATE   JOB,   EXECUTE   ANY   CLASS,   EXECUTE   ANY

PROGRAM,   MANAGE   SCHEDULER

DBA

Most system privileges, several other roles. Do not grant to nonadministrators.

SELECT_CATALOG_ROLE

No system privileges, but HS_ADMIN_ROLE and over 1,700 object privileges on the data dictionary



创建角色

步骤:Select Administration>Schema>Users&Privileges>Roles


关联角色到用户





概要文件和用户

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



创建密码概要文件




提供密码验证方法: VERIFY_FUNCTION

提供密码验证的方法可以强制密码约束
最短四个字符长度
密码不可以和用户名一样
密码必须至少一个数字,一个字符,一个其他符号
密码必须和上一个密码有三个以上字符不一样

提示: 可以使用这个函数作为自己创建密码验证的函数的模版.

<oracle_home>/rdbms/admin/utlpwdmg.sql










对于上述知识点的一些SQL实现


SQL> conn / as sysdba
已连接。
SQL> show user
USER 为 "SYS"
SQL> --创建一个名叫itcast123,密码为 password的用户
SQL> create user itcast123 identified by password;


用户已创建。


SQL> --授权让itcast123登录
SQL> grant create session to itcast123;


授权成功。


SQL> grant create table to  itcast123;


授权成功。


SQL> --为itcast123分配空间配额
SQL> alter user itcast123 quota unlimited on users;


用户已更改。


SQL> --对象权限
SQL> conn scott/tiger
已连接。
SQL> select count(*) from hremp;


  COUNT(*)                                                                      
----------                                                                      
       107                                                                      


SQL> host cls


SQL> --使用admin option撤销系统权限
SQL> show user
USER 为 "SCOTT"
SQL> conn / as sysdba
已连接。
SQL> create user jeff identified by password;


用户已创建。


SQL> create user emi identified by password;


用户已创建。


SQL> grant create session to jeff,emi;


授权成功。


SQL> grant create table to jeff with admin option;


授权成功。


SQL> alter user jeff quota unlimited on users;


用户已更改。


SQL> --切换到jeff
SQL> conn jeff/password
已连接。
SQL> show user
USER 为 "JEFF"
SQL> grant create table to emi;


授权成功。


SQL> conn / as sysdba
已连接。
SQL> alter user emi quota unlimited on users;


用户已更改。


SQL> show user
USER 为 "SYS"
SQL> revoke create table from jeff;


撤销成功。


SQL> host cls


SQL> --使用grant option撤销对象权限
SQL> conn scott/tiger
已连接。
SQL> grant select on emp to jeff with grant option;


授权成功。


SQL> --jeff上
SQL> conn jeff/password
已连接。
SQL> grant select on scott.emp to emi;


授权成功。


SQL> --撤销
SQL> conn scott/tiger
已连接。
SQL> revoke select on emp from jeff;


撤销成功。


SQL> host cls


SQL> --角色
SQL> create role hr_clerk;
create role hr_clerk
*
第 1 行出现错误: 
ORA-01031: 权限不足 




SQL> show user
USER 为 "SCOTT"
SQL> conn / as sysdba
已连接。
SQL> create role hr_clerk;


角色已创建。


SQL> create role hr_mgr;


角色已创建。


SQL> grant create session to  hr_clerk;


授权成功。


SQL> grant create table, hr_clerk to hr_mgr;


授权成功。


SQL> grant hr_clerk to jeff;


授权成功。


SQL> grant hr_mgr to emi;


授权成功。


SQL> /*
SQL> create user ddd identified by password;
SQL> grant connect,resource to ddd;
SQL> */
SQL> spool off

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值