用ADO对数据库进行访问,想在连接成功之后做一下当前用户权限的判断,看是否拥有管理员权限,如果不是管理员,则返回重新填写登陆信息,有什么命令可以判断当前用户是否拥有管理的吗?或者是有什么语句只有管理员级别的才可以执行,如果当前用户执行该语句出错,则该用户不为管理员权限?
解决方案 »
- oracle存储过程执行很慢
- 帮忙看看这个sql语句有没有更好的写法(选择执行where条件后的语句),期待各位的回帖
- oracle8i导入10g出错,字符集问题怎么解决
- 想问一下Oracle 10g的web版Enterprice Manger的 URL?谢谢!
- package 中有clob变量,效率变慢
- *小问题:如何在PL/SQL Developer中写存储过程,以及在存储过程中的日期函数是什么?
- ORACLE中如何能知道某个用户历次执行的SQL语句呢
- 请问ORACLE中如何把A表一些记录增加到B表中?
- 请问在哪里创建oms?
- 何时走索引
- oracle函数如何格式化这样的数据
- oracle锁的机制
返回true --> 有DBA权限.
返回false --> 无DBA权限.
SQL> select * from session_roles;ROLE
------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
SCHEDULER_ADMINROLE
------------------------------
WM_ADMIN_ROLE
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
XDBWEBSERVICES
OLAP_DBA
PLUSTRACE18 rows selected.SQL> select userenv('ISDBA') from dual;USEREN
------
FALSESQL> conn system/oracle
Connected.
SQL> select userenv('ISDBA') from dual;USEREN
------
FALSESQL> conn system/oracle as sysdba
Connected.
SQL> select userenv('ISDBA') FROM DUAL;USEREN
------
TRUE
意思好像是只有sysdba才是true哦。。是不是我的环境有什么问题?
1
select count(*) from dba_role_privs where grantee='SCOTT' and GRANTED_ROLE='DBA';
0
用有DBA权限的帐号登陆,然后给你所用的用户赋权
grant dba to useraccount;
如果我是单独把dba角色的所有权限一项项赋予某个用户,这样这个用户实际拥有dba的所有权限,但是没有dba橘色.