Debian Oracle数据库如何进行权限管理
导读:Debian上Oracle数据库权限管理实操指南 一 环境准备与连接 以操作系统用户oracle登录,确保环境变量正确(示例为ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1),必要时...
Debian上Oracle数据库权限管理实操指南
一 环境准备与连接
- 以操作系统用户oracle登录,确保环境变量正确(示例为ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1),必要时执行:
source ~/.bash_profile。 - 启动监听:
lsnrctl start;以管理员身份连接数据库:sqlplus / as sysdba。 - 注意:权限管理的对象在数据库内(用户、角色、权限、Profile),与操作系统用户oracle的权限无关,但为保证服务可用,需确保目录如**/u01属主为oracle:oinstall**、权限775。
二 用户与登录权限
- 创建用户并指定默认表空间(示例表空间为users):
CREATE USER appuser IDENTIFIED BY < pwd> DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; - 允许登录:授予CREATE SESSION。
- 常见账户维护:
- 修改密码:
ALTER USER appuser IDENTIFIED BY < newpwd> ; - 锁定/解锁:
ALTER USER appuser ACCOUNT LOCK|UNLOCK; - 删除用户(含对象):
DROP USER appuser CASCADE;
- 修改密码:
- 登录被拒常见原因:未授予CREATE SESSION。
三 系统权限与对象权限
- 系统权限(示例):
- 授予建表:
GRANT CREATE TABLE TO appuser; - 授予任意表查询:
GRANT SELECT ANY TABLE TO appuser;(谨慎) - 允许转授权限:
GRANT CREATE SESSION TO appuser WITH ADMIN OPTION; - 回收:
REVOKE CREATE TABLE FROM appuser; - 特性:系统权限回收不级联。
- 授予建表:
- 对象权限(示例,schema为scott):
- 授予表权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON scott.emp TO appuser; - 列级权限:
GRANT INSERT (empno, ename) ON scott.emp TO appuser; - 允许再授权:
GRANT SELECT ON scott.emp TO appuser WITH GRANT OPTION; - 回收:
REVOKE SELECT, INSERT ON scott.emp FROM appuser; - 特性:对象权限回收级联。
- 授予表权限:
- 公共授权(谨慎使用):
GRANT CREATE SESSION TO PUBLIC;、GRANT SELECT ON scott.emp TO PUBLIC;。
四 角色管理与预定义角色
- 创建与授权角色:
- 创建:
CREATE ROLE app_role; - 给角色授系统权限:
GRANT CREATE SESSION, CREATE TABLE TO app_role; - 给角色授对象权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON scott.emp TO app_role; - 将角色授予用户:
GRANT app_role TO appuser; - 允许转授角色:
GRANT app_role TO appuser WITH ADMIN OPTION; - 删除角色:
DROP ROLE app_role;
- 创建:
- 预定义角色:
- CONNECT:常用基础会话与对象创建权限集合。
- RESOURCE:包含创建表、索引、过程、触发器等权限;在部分版本中隐含UNLIMITED TABLESPACE。
- DBA:几乎全部系统权限;注意其不包含SYSDBA/SYSOPER特权(启停实例)。
- 安全建议:生产环境优先采用最小权限与自定义角色,谨慎授予DBA与WITH ADMIN OPTION / WITH GRANT OPTION。
五 表空间配额与Profile口令资源限制
- 表空间配额(示例为users):
- 授予配额:
ALTER USER appuser QUOTA 100M ON users; - 无限制:
ALTER USER appuser QUOTA UNLIMITED ON users; - 常见报错:ORA-01950: no privileges on tablespace 表示缺配额。
- 授予配额:
- Profile(口令与资源限制):
- 查看:
SELECT * FROM dba_profiles WHERE profile='DEFAULT'; - 口令限制示例:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1 PASSWORD_LIFE_TIME 90; - 资源限制需启用:
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=MEMORY; - 切换用户Profile:
ALTER USER appuser PROFILE app_profile; - 删除Profile:
DROP PROFILE app_profile CASCADE;(同时将其用户改回DEFAULT)
- 查看:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Oracle数据库如何进行权限管理
本文地址: https://pptw.com/jishu/762764.html
