首页主机资讯Ubuntu上Oracle数据库的权限设置方法

Ubuntu上Oracle数据库的权限设置方法

时间2026-01-20 12:54:03发布访客分类主机资讯浏览366
导读: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
Ubuntu Oracle数据库的性能调优策略 Oracle在Ubuntu上的高可用性解决方案

游客 回复需填写必要信息