如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?

更新于
2026-08-17 08:00:11
13阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

在数据库管理工作中,权限设置是确保数据安全与完整性的关键环节。许多管理员面临的痛点包括: • 频繁出现“ORA‑01031: insufficient privileges”错误,导致任务停滞;• 过度授权带来安全隐患;• 在 CentOS 上安装 Oracle Instant Client 过程繁琐。

如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?

1)安装 Oracle Instant Client

  • 下载对应版本这方面,wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip
  • 再看解压并放置,/opt/oracle/instantclient_19_8
  • 再看设置环境变量。
    # /etc/profile.d/oracle.sh
    export ORACLE_HOME=/opt/oracle/instantclient_19_8
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME
    source /etc/profile.d/oracle.sh
    
  • 使用 yum localinstall oracle-database-preinstall-19c 安装依赖。

2)确认程序使用者已存在且有足够权限执行 sqlplus。

在 sqlplus 中以 sysdba 身份登录:

$ sqlplus sys/oracle as sysdba
SQL> CREATE USER myuser IDENTIFIED BY mypassword;按理说,SQL> GRANT CREATE SESSION TO myuser;SQL> EXIT,其实,

如果忘记为新使用者授予 CONNECT 权限。后续登录会报 “ORA‑01031”。请务必先授予 CREATE SESSION。不过,

  • Create Session:允许登录数据库。话说回来,
  • Create Table:创建表格所需。
  • Create View: 如业务需要视图。
  • Create Sequence / Trigger: 对应业务需求。老实说,
  • SYSTEM / DBA 角色:

# 为 myuser 分配基本操作权限
GRANT CREATE SESSION,CREATE TABLE TO myuser;# 如需视图功能再加上:
GRANT CREATE VIEW TO myuser;
# 如需序列和触发器:
GRANT CREATE SEQUENCE,CREATE TRIGGER TO myuser;# 最终检查:
SELECT * FROM dba_tab_privs WHERE grantee = 'MYUSER';EXIT,

经常出现“过度授权导致安全隐患”,建议使用角色统一管理。话说回来,例如这方面,

# 创建角色
CREATE ROLE app_role;GRANT CREATE SESSION,CREATE TABLE TO app_role;-- 将角色赋给使用者
GRANT app_role TO myuser;-- 若需要撤销某项权限:
REVOKE CREATE TABLE FROM app_role;REVOKE app_role FROM myuser;-- 回收全部角色权限
EXIT;

  • 密码泄露后需要快速重置: ALTER USER myuser IDENTIFIED BY newpass;
  • 查看某个使用者拥有的所有对象级别权限: SELECT * FROM dba_tab_privs WHERE grantee='MYUSER';
  • 撤销单项对象级别权限: REVOKE SELECT ON schema.table FROM MYUSER;
  • 彻底撤销所有数据库级别授予: DROP USER MYUSER CASCADE;

  • Create a file in your home directory:
  • $ vi ~/.sqlplusrc

CONNECT MYUSER/MYPASSWORD@//hostname:1521/service_name

如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?

SET NLSLANG=AMERICANAMERICA.AL32UTF8

SET AUTOCOMMIT OFF SET MARKUP HTML ON EXIT $ vi ~/.sqlplshist # optional history file path

在 CentOS 环境下若想让 sqlplus 自动读取此文件。只需确保该文件具有正确的读写权限,例如 .

& 小贴士:

  • 始终遵循“最小特权”原则;话说回来,只授予业务必需的角色与对象级别权限。

  • 定期审计 dbasysprivsallocatedtousers dbatabprivsallocatedtousers 的结果,以发现不合理或被遗忘的授权。其实,
  • 当遇到 “ORA‑01031” 时可先检查是否缺少 C​REATE SESSION 或者没有被赋予正确的角色。.
  • 如果你对客户端安装步骤感到头疼,可考虑使用 Docker 镜像或 Oracle 官方的 RPM 包一次性完成部署。
  • 通过以上步骤。你可以在 CentOS 程序上用 SQL*Plus 高效、安全地完成数据库权限设置,并继续提高自己的管理技能。祝你工作顺利,

    标签:CentOS

    在数据库管理工作中,权限设置是确保数据安全与完整性的关键环节。许多管理员面临的痛点包括: • 频繁出现“ORA‑01031: insufficient privileges”错误,导致任务停滞;• 过度授权带来安全隐患;• 在 CentOS 上安装 Oracle Instant Client 过程繁琐。

    如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?

    1)安装 Oracle Instant Client

    • 下载对应版本这方面,wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip
    • 再看解压并放置,/opt/oracle/instantclient_19_8
    • 再看设置环境变量。
      # /etc/profile.d/oracle.sh
      export ORACLE_HOME=/opt/oracle/instantclient_19_8
      export PATH=$ORACLE_HOME/bin:$PATH
      export LD_LIBRARY_PATH=$ORACLE_HOME
      source /etc/profile.d/oracle.sh
      
    • 使用 yum localinstall oracle-database-preinstall-19c 安装依赖。

    2)确认程序使用者已存在且有足够权限执行 sqlplus。

    在 sqlplus 中以 sysdba 身份登录:

    $ sqlplus sys/oracle as sysdba
    SQL> CREATE USER myuser IDENTIFIED BY mypassword;按理说,SQL> GRANT CREATE SESSION TO myuser;SQL> EXIT,其实,

    如果忘记为新使用者授予 CONNECT 权限。后续登录会报 “ORA‑01031”。请务必先授予 CREATE SESSION。不过,

    • Create Session:允许登录数据库。话说回来,
    • Create Table:创建表格所需。
    • Create View: 如业务需要视图。
    • Create Sequence / Trigger: 对应业务需求。老实说,
    • SYSTEM / DBA 角色:

    # 为 myuser 分配基本操作权限
    GRANT CREATE SESSION,CREATE TABLE TO myuser;# 如需视图功能再加上:
    GRANT CREATE VIEW TO myuser;
    # 如需序列和触发器:
    GRANT CREATE SEQUENCE,CREATE TRIGGER TO myuser;# 最终检查:
    SELECT * FROM dba_tab_privs WHERE grantee = 'MYUSER';EXIT,

    经常出现“过度授权导致安全隐患”,建议使用角色统一管理。话说回来,例如这方面,

    # 创建角色
    CREATE ROLE app_role;GRANT CREATE SESSION,CREATE TABLE TO app_role;-- 将角色赋给使用者
    GRANT app_role TO myuser;-- 若需要撤销某项权限:
    REVOKE CREATE TABLE FROM app_role;REVOKE app_role FROM myuser;-- 回收全部角色权限
    EXIT;

    • 密码泄露后需要快速重置: ALTER USER myuser IDENTIFIED BY newpass;
    • 查看某个使用者拥有的所有对象级别权限: SELECT * FROM dba_tab_privs WHERE grantee='MYUSER';
    • 撤销单项对象级别权限: REVOKE SELECT ON schema.table FROM MYUSER;
    • 彻底撤销所有数据库级别授予: DROP USER MYUSER CASCADE;

    • Create a file in your home directory:
    • $ vi ~/.sqlplusrc

    CONNECT MYUSER/MYPASSWORD@//hostname:1521/service_name

    如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?

    SET NLSLANG=AMERICANAMERICA.AL32UTF8

    SET AUTOCOMMIT OFF SET MARKUP HTML ON EXIT $ vi ~/.sqlplshist # optional history file path

    在 CentOS 环境下若想让 sqlplus 自动读取此文件。只需确保该文件具有正确的读写权限,例如 .

    & 小贴士:

    • 始终遵循“最小特权”原则;话说回来,只授予业务必需的角色与对象级别权限。

  • 定期审计 dbasysprivsallocatedtousers dbatabprivsallocatedtousers 的结果,以发现不合理或被遗忘的授权。其实,
  • 当遇到 “ORA‑01031” 时可先检查是否缺少 C​REATE SESSION 或者没有被赋予正确的角色。.
  • 如果你对客户端安装步骤感到头疼,可考虑使用 Docker 镜像或 Oracle 官方的 RPM 包一次性完成部署。
  • 通过以上步骤。你可以在 CentOS 程序上用 SQL*Plus 高效、安全地完成数据库权限设置,并继续提高自己的管理技能。祝你工作顺利,

    标签:CentOS