看到這個錯誤提示再明白不過了,Oracle中某個角色不存在。
不小心把Oracle中的幾個重要角色刪除掉了(dba,connect,resource),Plsql只能用DBA權限進去,普通權限進不去,悲劇中,百度....貌似沒查出個所以然,但是想想
類似與這樣的提示。百度也給不出想要的答案,答案要靠自己來發現
1:首先了解下這幾個角色都是干什么用的,然后就知道如何處理
1):connect
select GRANTEE, PRIVILEGE from DBA_SYS_PRIVS where GRANTEE ='CONNECT';查詢出下面內容
ALTER SESSION --修改會話
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立數據庫鏈接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立會話
CREATE SYNONYM --建立同義詞
CREATE VIEW --建立視圖
解決方法:首先創建角色,然后再賦權限就行了:
SQL-> create role connect;
SQL-> grant ALTER SESSION ,CREATE CLUSTER,CREATE DATABASE LINK,CREATE SEQUENCE,CREATE SESSION,CREATE SYNONYM, CREATE VIEW to connect;
2):resource--是授予開發人員的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立過程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立觸發器
CREATE TYPE --建立類型
SQL->select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
RESOURCE CREATE CLUSTER
RESOURCE CREATE INDEXTYPE
RESOURCE CREATE OPERATOR
RESOURCE CREATE PROCEDURE
RESOURCE CREATE SEQUENCE
RESOURCE CREATE TABLE
RESOURCE CREATE TRIGGER
RESOURCE CREATE TYPE
SQL-> create role resource;
SQL-> grant CREATE CLUSTER,CREATE INDEXTYPE,CREATE OPERATOR,CREATE PROCEDURE,CREATE SEQUENCE,CREATE TABLE,CREATE TRIGGER,CREATE TYPE to resource;
3):DBA
create role DBA;
grant all privilege to dba with admin option;
OK,問題解決了。