ORA-01932: ADMIN 选项未授权给角色 'CONNECT'

本文介绍了一个常见的Oracle数据库错误ORA-01932:在尝试授予CONNECT角色给用户SCOTT时出现的ADMIN选项未授权给角色'CONNECT'的问题。文章分析了错误的原因,并提供了解决这一问题的有效方法。

1、错误描述

SQL> grant connect to scott;
 
grant connect to scott
 
ORA-01932: ADMIN 选项未授权给角色 'CONNECT'

2、错误原因


3、解决办法

该错误表明无法解析指定的连接标识符,可能是由于缺少 `TNS_ADMIN` 环境变量,导致无法找到 `tnsnames.ora` 文件。以下是解决办法: ### 下载并配置 Instant Client 由于本地没有安装 Oracle,需要下载 Oracle Instant Client。这是一个轻量级的客户端,能让本地电脑连接到 Oracle 数据库。下载适合系统的 Oracle Instant Client 版本,解压到指定目录,如 `D:\instantclient_19_12`。 ### 配置 `tnsnames.ora` 文件 在 Instant Client 解压目录下创建 `NETWORK\ADMIN` 文件夹,在 `NETWORK\ADMIN` 文件夹中创建 `tnsnames.ora` 文件,内容示例如下: ```plaintext YOUR_SERVICE_NAME = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 远程服务器IP地址)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 远程数据库服务名) ) ) ``` 将 `YOUR_SERVICE_NAME` 替换为自定义的连接标识符,`远程服务器IP地址` 替换为实际的服务器 IP,`远程数据库服务名` 替换为实际的数据库服务名。 ### 设置环境变量 右击“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”,在“系统变量”中新建变量: - 变量名:`TNS_ADMIN` - 变量值:`D:\instantclient_19_12\NETWORK\ADMIN` (根据实际的 Instant Client 解压路径修改) 还可以添加另一个变量: - 变量名:`NLS_LANG` - 变量值:`SIMPLIFIED CHINESE_CHINA.ZHS16GBK` ### 配置 Navicat 打开 Navicat,创建一个新的 Oracle 连接。在“常规”选项卡中,“主机名/IP 地址”填写远程服务器 IP,“端口”填写 1521,“服务名”填写 `tnsnames.ora` 中定义的 `YOUR_SERVICE_NAME`。在“高级”选项卡中,“OCI 库”选择 Instant Client 解压目录下的 `oci.dll` 文件,如 `D:\instantclient_19_12\oci.dll`。 ### 测试连接 完成上述配置后,点击 Navicat 中的“测试连接”按钮,若连接成功,则问题解决。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值