管理用户
用户管理: 概览
l在指定区域内创建用户(表空间users).
l制定配额以限制存储的使用.
l使用描述文件限制资源的使用.
l通过密码鉴别用户
l通过描述文件管理密码角色(种植密码并锁定用户).
l分配权限给角色,分配角色给用户.
数据库用户和方案
l方案就是属于某一用户的所有对象的集合.l用户名和方案名往往是通用的.l一个用户只能关联一个方案.l创建用户时系统会自动创建一个同名方案
方案对象
表触发器索引视图序列存储程序单位同义字自定义数据类型数据库链接
数据库用户帐户
•一个唯一的用户名•一个验证方法•一个默认的表空间•一个临时表空间•一个用户概要文件•一个消费群•一个锁状态•每个表空间的配额.•权限和角色
预定义帐户: SYS 和SYSTEM
•拥有 DBA 权限•拥有 ADMIN OPTION 的所有权限•拥有 startup, shutdown, 以及若干维护命令•拥有数据字典
创建用户
验证用户
管理员验证
•DBA 必须拥有创建和删除文件的操作系统权限•普通数据库用户不应具有拥有创建和删除文件的操作系统权限
•SYSBA 和 SYSOPER 通过密码文件或操作系统实现连接审定.•密码文件使用名称鉴别 DBA 用户.•OS 验证并不记录特定用户.•对于 SYSDBA 和 SYSOPER 来说OS验证优先于密码文件认证.
解锁用户帐户和重置密码
权限
用户权限有两种:
•System: 允许用户执行对于数据库的特定行为,例如:创建表、创建用户等•Object: 允许用户访问和操作一个特定的对象,例如:对其他方案下的表的查询
系统权限
对象权限
使用 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 |
创建角色
关联角色到用户
概要文件和用户
创建密码概要文件
提供密码验证方法: VERIFY_FUNCTION
•最短四个字符长度•密码不可以和用户名一样•密码必须至少一个数字,一个字符,一个其他符号•密码必须和上一个密码有三个以上字符不一样
对于上述知识点的一些SQL实现
已连接。
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

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

被折叠的 条评论
为什么被折叠?



