Ubuntu上Oracle数据库的权限设置方法
导读:Ubuntu上Oracle数据库权限设置方法 一 环境准备与登录 以操作系统oracle用户登录 Ubuntu,确保环境变量正确(建议写入 ~/.bash_profile 或 ~/.bashrc): 设置实例与路径:export ORA...
Ubuntu上Oracle数据库权限设置方法
一 环境准备与登录
- 以操作系统oracle用户登录 Ubuntu,确保环境变量正确(建议写入 ~/.bash_profile 或 ~/.bashrc):
- 设置实例与路径:export ORACLE_SID=你的实例名;export ORACLE_HOME=/u01/app/oracle/product/…;export PATH=$ORACLE_HOME/bin:$PATH
- 使配置生效:source ~/.bash_profile
- 使用 SQL*Plus 连接数据库:sqlplus / as sysdba(本地操作系统认证)或 sqlplus sys/你的口令@//主机:端口/服务名 as sysdba。
二 用户与表空间
- 创建表空间(示例):
- 临时表空间:CREATE TEMPORARY TABLESPACE TBS_TEMP TEMPFILE ‘/u01/oradata/TESTDB_TEMP.dbf’ SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
- 数据表空间:CREATE TABLESPACE TBS_TEST LOGGING DATAFILE ‘/u01/oradata/TBS_TEST.dbf’ SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
- 创建用户并指定默认表空间与临时表空间:
- CREATE USER TEST IDENTIFIED BY TESTDB ACCOUNT UNLOCK DEFAULT TABLESPACE TBS_TEST TEMPORARY TABLESPACE TBS_TEMP;
- 若用户在表空间上无配额,创建对象会报 ORA-01950,需要授予配额:
- ALTER USER TEST QUOTA 10M ON TBS_TEST。
三 权限授予与回收
- 系统权限与角色
- 最小登录权限:GRANT CREATE SESSION TO TEST;
- 常用开发权限:GRANT CONNECT, RESOURCE TO TEST;
- 管理员权限:GRANT DBA TO TEST; (生产慎用)
- 回收:REVOKE CONNECT, RESOURCE FROM TEST; 或 REVOKE DBA FROM TEST;
- 授权传递:系统权限可带 WITH ADMIN OPTION;对象权限可带 WITH GRANT OPTION(对象权限回收会级联)。
- 对象权限(对指定用户对象)
- 授予:GRANT SELECT, INSERT, UPDATE, DELETE ON SCOTT.EMP TO TEST;
- 列级:GRANT UPDATE(sal) ON SCOTT.EMP TO TEST;
- 回收:REVOKE SELECT, UPDATE ON SCOTT.EMP FROM TEST;
- 角色管理
- 创建角色:CREATE ROLE APP_ROLE;
- 给角色授权:GRANT CREATE SESSION, CREATE TABLE TO APP_ROLE;
- 授予用户:GRANT APP_ROLE TO TEST;
- 回收:REVOKE APP_ROLE FROM TEST。
四 常用只读与资源安全控制
- 只读用户(对象级)
- 仅授予查询:GRANT SELECT ON SCOTT.EMP TO R_ONLY; (可按需授予更多只读对象)
- 整个数据库只读(实例级)
- 关闭后只读启动:SHUTDOWN IMMEDIATE; STARTUP OPEN READ ONLY;
- 或挂载后只读打开:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ ONLY;
- 口令与资源限制(PROFILE)
- 查看:SELECT * FROM DBA_PROFILES WHERE PROFILE=‘DEFAULT’;
- 修改默认口令策略:ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1;
- 新建并应用:CREATE PROFILE LIMIT_ACC LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 10; ALTER USER TEST PROFILE LIMIT_ACC;
- 启用资源限制:ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=MEMORY。
五 常用查询与排错
- 查看用户被授予的角色:SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE=‘TEST’;
- 查看用户被授予的系统权限:SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE=‘TEST’;
- 查看用户在表空间上的配额:SELECT * FROM DBA_TS_QUOTAS WHERE USERNAME=‘TEST’;
- 登录报 ORA-01045:缺少 CREATE SESSION,执行 GRANT CREATE SESSION TO 用户名;
- 创建表报 ORA-01950:在目标表空间无配额,执行 ALTER USER 用户名 QUOTA 大小 ON 表空间名。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上Oracle数据库的权限设置方法
本文地址: https://pptw.com/jishu/787164.html
