zoukankan      html  css  js  c++  java
  • 【原创】ORACLE常见使用问题解决

    ORACLE常见使用问题解决

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

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

      问题现象描述:

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

    # tnsnames.ora Network Configuration File: d:oracleproduct10.2.0db_1
    etworkadmin	nsnames.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:oracleproduct10.2.0client_1in;d:oracleproduct10.2.0db_1in;修改为d:oracleproduct10.2.0db_1in;这时细心的同学已经发现了,原因是后来安装的客户端软件,将PATH环境变量更新了,将client路径写到了前面,修改后即可解决问题;

        方法2:将D:oracleproduct10.2.0db_1 etworkadmin nsnames.ora文件与D:oracleproduct10.2.0client_1 etworkadmin nsnames.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数据库用户创建工作。

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

  • 相关阅读:
    关于web开发的一点理解
    如何通过Request.ServerVariables["HTTP_USER_AGENT"]获取客户端操作系统信息
    将图片转换为Base64
    asp.net 图片质量压缩(不改变尺寸)
    下载网路图片并保存在硬盘
    HTTP Content-type 对照表
    mssql 查询全部用户创建表 条数及占用空间大小(KB)
    幸运抽奖数据结构
    非UI线程和UI线程通信
    爬取淘宝“手机信息”
  • 原文地址:https://www.cnblogs.com/xiaoTT/p/3327148.html
Copyright © 2011-2022 走看看