【原创】ORACLE常见使用问题解决

时间:2023-01-31 23:15:26

ORACLE常见使用问题解决

一、安装了oracle客户端后,发现plsql客户端找不到之前已经配置过的TNS连接信息

  或许大家再使用ORACLE软件的过程中,经常会遇到这样的问题:

  问题现象描述:

    首先,先安装了数据库服务端软件,安装路径假设为D:\oracle\product\10.2.0\db_1\bin,利用NETCA命令配置了连接所需数据库实例的TNS连接,即在D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora这个文件中,已经有了相应数据库的连接配置信息,例如:

# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools. TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = test)
)
) ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
) EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

这时使用PLSQL软件时,初始界面能认到所配置的ORCL和TEST数据库连接信息;但当安装了数据库客户端软件后,确发现再次打开PLSQL时,这些连接都不见了。

  问题解决方法:

    方法1:将PATH环境变量中的数据库服务端软件路径剪切到最前面,即d:\oracle\product\10.2.0\client_1\bin;d:\oracle\product\10.2.0\db_1\bin;修改为d:\oracle\product\10.2.0\db_1\bin;这时细心的同学已经发现了,原因是后来安装的客户端软件,将PATH环境变量更新了,将client路径写到了前面,修改后即可解决问题;

    方法2:将D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora文件与D:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora,两个文件进行合并,并保证两者一致,这也可以从表面上解决该问题;

二、ORACLE创建数据库用户的赋权,最基础的权限应该是哪些?

  首先,我们可能都在实施或实际运维过程中发现,数据库的用户几乎都给了DBA,CONNECT权限,其实这样是有很大的管理风险的,如果误操作,整个数据库就over了;

  其次,我们通过对ORACLE数据库默认安装创建的角色进行分析,不难发现CONNECT,RESOURCE是我们比较需要的两个权限定义集合,具体如下:

-- Create the role
create role CONNECT;
-- Grant/Revoke system privileges
grant create session to CONNECT; -- Create the role
create role RESOURCE;
-- Grant/Revoke system privileges
grant create cluster to RESOURCE;
grant create indextype to RESOURCE;
grant create operator to RESOURCE;
grant create procedure to RESOURCE;
grant create sequence to RESOURCE;
grant create table to RESOURCE;
grant create trigger to RESOURCE;
grant create type to RESOURCE;

细心的同学发现了,当有了这两个的角色权限,基本的活在数据库里都可以干了,唯独我们还得给这个用户追加个create view权限,基本就万事大吉了。即就是:

create user test identified by test;
grant create view, connect, resource to test;

就完成了绝大多数套装软件所需的oracle数据库用户创建工作。

希望以上的内容能对大家有所帮助。