大型数据库技术(三)用户管理

一、oracle数据库用户类型

1、Oracle默认的系统用户

(1)、只有合法的用户账号才能访问Oracle数据库

(2)、Oracle默认的系统用户:


2、系统用户说明

(一)、sys:这个账户相当于SQLserver中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库的所有管理任务。

(二)、system:没有sys的权限大,通常用来创建一些用于查看管理信息的表和视图,同样也不建议使用system架构来创建一些与管理无关的表或视图。

(三)、sys和system在登录Oracle工具时,sys只能以系统管理员(sysdba)或系统操作员(sysoper)的权限登录,而system可以直接登录(normal)。

(四)、sysman:是oracle数据库中用于EM管理的用户,如果你不用该用户,也可以删除。

(五)、scott:是oracle提供的示例用户,里面有一些供初学者学习操作的数据表(emp,dept,salgrade,bonus)。

3、启用scott用户

给scott用户解锁【语法格式】(默认的scott用户是锁定的):alter user username account unlock

例:alter user scott account unlock

然后连接:conn scott/tiger


二、用户管理

1、创建用户

创建用户时使用的语句的一般格式如下:
CREATE USER 用户名 IDENTIFIED BY 口令 [EXTERNALLY]
[DEFAULT TABLESPACE 表空间名]
[TEMPORARY TABLESPACE表空间名]
[QUOTA [整数] [UNLIMITED] ON 表空间名]
[PROFILE 环境文件名]
例子:
CREATE USER Trainee
IDENTIFIED BY t123456
DEFAULT TABLESPACE data_ts
TEMPORARY TABLESPACE temp_ ts
QUOTA 10M ON data_ ts
QUOTA 20M ON SYSTEM
PROFILE pTrainee;

缺省表空间(Default Tablespace):用户创建模式对象时,
如没有指明表空间,那么对象在缺省表空间中创建。
临时表空间(Temporary Tablespace):为有要求磁盘空间作
排序或数据汇总的SQL语句提供存储空间。
表空间限额(Tablespace Quotas): 决定用户在每个表空间
中可以使用的最大尺寸。
系统资源限制(System Resource Limit):包括CPU时间、逻
辑读个数、每个用户同时可连接对话个数,一个对话的空闲
时间。通过Profile文件指明。

2、查看表空间

查看用户表空间:
SELECT default _tablespace, temporary_tablespace
FROM dba_users 
WHERE username='C##TRAINEE'

查看系统默认表空间:

SELECT PROPERTY_VALUE 
FROM database_properties
WHERE PROPERTY_NAME='DEFAULT_PERMANENT_TABLESPACE'

3、修改用户的安全设置

将创建用户时的create改成alter

例子:

将用户Trainee的密码更改为T#0908,在data_ts表空 间中分配50M空间,并取消在SYSTEM中的表空间。
ALTER USER Trainee
IDENTIFIED BY T#0908
DEFAULT TABLESPACE data_ts
TEMPORARY TABLESPACE temp_ ts
QUOTA 50M ON data_ ts
QUOTA 0M ON SYSTEM
PROFILE pTrainee;

4、删除用户

删除用户语法为:

DROP USER 用户名 [CASCADE]
使用CASCADE选项,会从数据字典中删除该用户、该 用户的相关模式及模式中包含的所有模式对象。
不能删除当前已经连接到数据库的用户。

三、资源管理

PROFILE概述:
PROFILE 作为⽤户配置⽂件,它是密码限制、资源限制的命名集合。PROFILE ⽂件作为 Oracle 安全策略的重要组成部分,利⽤它可以对数据库⽤户进⾏基本的资源限制,并且可以对⽤户的密码进⾏管理。
注意事项:

1、创建PROFILE文件的语法如下

CREATE PROFILE profile_name LIMIT limit(s) range;
例如:
CREATE PROFILE pTrainee LIMIT FAILED_LOGIN_ATTEMPTS 3

SQL> create profile lock_account limit
 2 failed_login_attempts 5
 3 password_lock_time 7;
配置⽂件已创建

然后使用alter user语句将profile文件分配给用户dongfang:


SQL> alter user dongfang profile lock_account;
⽤户已更改

 2、常用的限制名称和含义

3、查询PROFILE文件

显⽰⽤户DONGFANG所使⽤的PROFILE⽂件
SQL> select profile from dba_users where username='DONGFANG';
PROFILE
显⽰指定PROFILE⽂件的资源配置信息
SELECT PROFILE, RESOURCE_NAME, LIMIT 
FROM DBA_PROFILES
ORDER BY PROFILE

SELECT * 
FROM DBA_PROFILES
WHERE profile='DEFAULT'

4、修改PROFILE文件

环境资源文件一旦建立,可以分配给数据库用户。
一个环境资源文件可以分配给多个用户,但一个用户在 任何时候只有一个环境资源文件。
环境资源文件一旦建立,可以使用ALTER ROFILE命 令来更改其参数。例如:
ALTER PROFILE pTrainee LIMIT PASSWORD_REUSE_TIME 7 IDLE_TIME 20;

SQL> alter profile password_lift_time limit
 2 cpu_per_session 20000
 3 sessions_per_user 10
 4 cpu_per_call 500
 5 password_life_time 180
 6 failed_login_attempts 10;
说明
对配置⽂件所做的修改只有在⽤户开始新的会话时才会⽣效。

5、删除PROFILE文件

DROP PROFILE 环境资源文件名 [CASCADE]
说明
如果为⽤户指定的配置⽂件被删除,则 Oracle 将⾃动为⽤户重新指定DEFAULT 配置⽂件。

四、管理权限

权限介绍

Oracle有两类级别的权限:
系统级权限:
即在系统级别上执行特定动作的权限,例如,连接库、在数据库中创建表空间和创建用户都属于系统级权限。在oracle中定义了100多种系统级权限。
对象级权限:
即在各种模式对象上,如表、视图、序列、过程、函数或包上执行特定动作的权限。不同类型的对象也具有不同的权限种类。

系统权限

1、授予系统权限

可以使用SQL语句GRANT将系统权限授予给其他用户或 其他角色:
GRANT [系统权限名][角色] TO [用户名][角色][PUBLIC][WITH ADMIN OPTION]

例:
GRANT CREATE SESSION To Trainer WITH ADMIN OPTION

2、撤销系统权限

可以使用SQL语句REVOKE来撤销系统权限,命令格式 为:
REVOKE [系统权限名][角色] FROM [用户名][角色][PUBLIC]

例如:
REVOKE CREATE SESSION FROM Trainer;

3、查看系统权限

①数据库管理员通过DBA_SYS_PRIVS查看所有
SELECT * FROM DBA_SYS_PRIVS;
②用户查看自己拥有的系统权限
SELECT * FROM USER_SYS_PRIVS;

对象级权限

1、授予对象级权限

GRANT SELECT ON students TO Trainer
GRANT ALL ON students TO Trainer
GRANT UPDATE (number_seats) ON rooms TO Trainer

2、查看对象权限

用户可以通过查询USER_TAB_PRIVS、DBA_TAB_PRIVS 等数据字典视图,查看用户的对象权限信息。
例如查询授予用户Trainer的所有的权限。
SELECT TABLE_NAME, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE='TRAINER';

五、角色管理:

角色(ROLE)是一个已命名的权限集合,使用角色可 以将这个集合中的权限同时授予或撤销。
一个角色可以组合多个权限和角色。
角色可以分为预定义角色和自定义角色两类。
常用的系统预定义角色:
CONNECT
RESOURCE
DBA

1、查看预定义角色细节,通过DBA_SYS_PRIVS

SELECT * FROM DBA_SYS_PRIVS WHERE grantee='CONNECT'
SELECT * FROM DBA_SYS_PRIVS WHERE grantee='RESOURCE'

2、创建自定义角色

CREATE ROLE 角色名 [NOT IDENTIFIED]
[IDENTIFIED [BY 口令] [EXTERNALLY]]

例:
CREATE ROLE rTrainee

3、删除角色

DROP ROLE 角色名

只删除角色不删除用户

4、授予角色权限

新创建的角色没有任何相关的权限,为使一个新角色 与权限相关联,必须给该角色授予权限或其他角色。
在同一个GRANT语句中, 不能将系统权限和对象权限 一起授予
例如:
GRANT CREATE TABLE ,CREATE VIEW TO rTrainer

5、给用户指派角色

一个角色可以指派给多个用户。一个用户也可以具有 多个角色。
当把角色指派给用户时,赋予该角色的权限也自动分 配给用户。
例如:
GRANT CREATE PROCEDURE,CREATE TRIGGER, rTrainee TO Smith;

6、撤销用户角色

REVOKE 角色名 FROM 对象名

7、查看角色信息

六、审计

Oracle数据库的审计(audit)功能具有审计发生在 其内部的所有操作的能力。
可以被审计的操作可归为三种:
登录操作
对象访问操作
数据库操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值