如何通过sqlplus在CentOS上高效设置权限,轻松提升数据库管理技能?
- 内容介绍
- 文章标签
- 相关推荐
在数据库管理工作中,权限设置是确保数据安全与完整性的关键环节。许多管理员面临的痛点包括: • 频繁出现“ORA‑01031: insufficient privileges”错误,导致任务停滞;• 过度授权带来安全隐患;• 在 CentOS 上安装 Oracle Instant Client 过程繁琐。
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:
CONNECT MYUSER/MYPASSWORD@//hostname:1521/service_name
SET NLSLANG=AMERICANAMERICA.AL32UTF8
SET AUTOCOMMIT OFF SET MARKUP HTML ON EXIT $ vi ~/.sqlplshist # optional history file path
在 CentOS 环境下若想让 sqlplus 自动读取此文件。只需确保该文件具有正确的读写权限,例如 .
& 小贴士:
- 始终遵循“最小特权”原则;话说回来,只授予业务必需的角色与对象级别权限。
通过以上步骤。你可以在 CentOS 程序上用 SQL*Plus 高效、安全地完成数据库权限设置,并继续提高自己的管理技能。祝你工作顺利,
。在数据库管理工作中,权限设置是确保数据安全与完整性的关键环节。许多管理员面临的痛点包括: • 频繁出现“ORA‑01031: insufficient privileges”错误,导致任务停滞;• 过度授权带来安全隐患;• 在 CentOS 上安装 Oracle Instant Client 过程繁琐。
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:
CONNECT MYUSER/MYPASSWORD@//hostname:1521/service_name
SET NLSLANG=AMERICANAMERICA.AL32UTF8
SET AUTOCOMMIT OFF SET MARKUP HTML ON EXIT $ vi ~/.sqlplshist # optional history file path
在 CentOS 环境下若想让 sqlplus 自动读取此文件。只需确保该文件具有正确的读写权限,例如 .
& 小贴士:
- 始终遵循“最小特权”原则;话说回来,只授予业务必需的角色与对象级别权限。
通过以上步骤。你可以在 CentOS 程序上用 SQL*Plus 高效、安全地完成数据库权限设置,并继续提高自己的管理技能。祝你工作顺利,
。
