oracle:用户、特权和角色,审计

本文详细介绍了Oracle数据库中如何创建、修改和删除用户,以及如何授予和撤销用户系统特权和对象特权。同时,文章还涵盖了角色的创建、授权以及审计功能的使用,包括审计不同类型的操作和不同级别的审计选项。通过这些操作,可以有效地管理和控制数据库的访问权限和行为追踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建用户:

CREATE USER user_name IDENTIFIED BY password

[DEFAULT TABLESPACE default_tablespace]

[temporary TABLESPACE temporary_tablespace]

修改用户密码:

ALTER USER jason IDENTIFIED BY marcus

PASSWORD 修改当前登录用户的密码。

删除用户:

DROP USER jason


向用户授予系统特权:

GRANT CREATE SESSION,EXECUTE ANY PROCEDURE TO steve WITH ADMIN OPTION

WITH ADMIN OPTION :所授权的用户可以将这种特权再授予其他用户。

检查授予用户的系统特权:

SELECT * 

FROM user_sys_privs;

ORDER BY privilege;

撤销用户的系统特权:

REVOKE CREATE TABLE FROM steve;


向用户授予对象特权:

GRANT SELECT,INSERT,UPDATE ON store.product s TO steve WITH GRANT OPTION;(WITH GRANT OPTION所授权的用户就可以把这种特权)

撤销用户的对象特权:

REVOKE INSERT ON products FROM steve;

检查某个用户对哪些表向其他用户开放了哪些对象特权。

SELECT *

FROM user_tab_privs_made (user_col_privs_made列)

WHERE table_name = 'PRODUCTS';

检查某个用户被授予了哪些表上的哪些对象特权。

SELECT *

FROM user_tab_privs_recd(user_col_privs_recd某个用户被授予了哪些列的对象特权)

同名对象

CREATE SYNONYM customers FOR store.customers;

公共同名对象

CREATE PUBLIC SYNONYM products FOR store.products;


创建角色

CREATE ROLE product_manager;

CREATE ROLE hr_manager;

CREATE ROLE overall_manager IDENTIFIED BY manger_password

为角色授权

GRANT SELECT,INSERT,UPDATE,DELETE ON product_types TO product_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON products TO product_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON salary_grades TO hr_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON employees TO hr_manager;

GRANT CREATE USER TO hr_manager;

GRANT product_manager, hr_manager TO overall_manager;

将角色授予用户

GRANT overall_manager TO steve;

检查授予用户的角色

SELECT * FROM user_role_privs;

检查授予角色的系统特权

SELECT * FROM role_sys_privs;

检查授予角色的对象特权

SELECT * FROM role_tab_privs


默认角色:用户连接到数据库上时,就可以自动使用这种角色了

ALTER ROLE修改,使其变为非默认角色。

ALTER USER steve DEFAULT ROLE ALL EXCEPT overall_manager;

启用角色

SET ROLE overall_manager IDENTIFIED BY manager_password

清空角色的设置

SET ROLE NONE 

将角色设置为除overall_manager之外的任何角色

SET ROLE ALL EXCEPT overall_manager

撤销角色

REVOKE overall_manager FROM steve;

从角色中撤销特权

REVOKE ALL ON products FROM  product_manager;

删除角色

DROP ROLE overall_manager;

DROP ROLE product_manager;

DROP ROLE hr_manager;


审计  跟踪数据库操作

执行审计需要的特权:

审计高级别操作 GRANT AUDIT SYSTEM TO store

跟踪特定数据库对象上的操作时,要么拥有AUDIT ANY特权,要么数据库对象必须在他们的模式中。 GRANT AUDIT ANY TO store

USER _AUDIT_TRAIL视图查看对当前登录用户的审计跟踪信息。

SELECT * FROM user_audit_trail WHERE audit_option = 'CREATE TABLE';

例:AUDIT SELECT TABLE,INSERT TABLE,UPDATE TABLE,DELETE TABLE BY store,steve;

AUDIT SELECT ON store.products;

AUDIT ALL ON store.employees;

WHENEVER SUCCESSFUL 当语句执行成功时进行审计 AUDIT INSERT TABLE WHENEVER NOT SUCCESSFUL

WHENEVER NOT SUCCESSFUL 当语句执行不成功时进行审计 AUDIT INSERT TABLE WHENEVER SUCCESSFUL


BY SESSION 对同一个用户数据库会话期间所发出的同一类语句只有一个审计记录。

BY ACCESS每次发出的同一类语句都有一个审计记录,与用户会话无关。


审计跟踪视图

USER_AUDIT_OBJECT 当前用户可访问的所有对象的审计记录

USER_AUDIT_SESSION 当前用户连接到数据库和断开数据库连接的审计记录

USER_AUDIT_STATEMENT 当前用户发出的GRANT,REVOKE,AUDIT,NOAUDIT,ALTER SYSTEM语句的审计记录

USER_AUDIT_TRAIL 与当前用户相关的所有审计跟踪条目




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值