oracle11g 查看指定用户权限
时间: 2024-09-11 18:04:00 浏览: 53
在Oracle数据库中,查看指定用户的权限可以通过查询数据字典视图来完成。你可以使用以下SQL语句来查看指定用户的权限:
```sql
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = '用户名';
```
这条语句会列出指定用户(在这里是'用户名')被授予的表权限。如果你想要查看对象级的权限,比如针对表、视图、序列等对象的权限,可以使用`DBA_TAB_PRIVS`视图。
如果你想查看系统权限,可以使用以下SQL语句:
```sql
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = '用户名';
```
这条语句会列出指定用户被授予的所有系统权限。
此外,如果你想查看角色权限,可以使用以下SQL语句:
```sql
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = '用户名';
```
这条语句会列出指定用户被授予的所有角色。
请记得将'用户名'替换为实际的用户名。如果你没有DBA权限,可能需要以拥有相应权限的用户登录,或者拥有查询相应数据字典视图的权限。
相关问题
oracle11g 查看用户的对象权限
在Oracle数据库中,要查看用户的对象权限,可以查询数据字典视图。以下是一些常用的视图和查询语句:
1. 查看当前用户的对象权限:
```sql
SELECT * FROM USER_TAB_PRIVS;
```
2. 查看当前用户可以访问的表、视图、序列等对象:
```sql
SELECT * FROM USER_TAB_PRIVS WHERE PRIVILEGE = 'SELECT';
```
3. 查看当前用户拥有的所有权限:
```sql
SELECT * FROM USER_TAB_PRIVS
UNION ALL
SELECT * FROM USER_COL_PRIVS;
```
4. 查看当前用户拥有指定对象的所有权限:
```sql
SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = '表名';
```
5. 查看其他用户对当前用户对象的权限:
```sql
SELECT * FROM ALL_TAB_PRIVS WHERE OWNER = '对象所有者的用户名';
```
6. 查看系统中所有用户对当前用户对象的权限:
```sql
SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '当前用户的用户名';
```
这些查询语句可以帮助你查看当前用户的对象权限情况。请根据需要选择合适的查询语句执行。
在oracle11g中新增一个只有查询权限的用户,怎么给用户赋予查询指定数据库
在Oracle 11g中,为了给一个新用户分配只读查询权限(SELECT权限),你可以按照以下步骤进行操作:
1. **登录DBA账户**:
使用sys或system账号登录到数据库,通常是通过SQL*Plus,如 `sqlplus / as sysdba`.
2. **创建新用户**:
使用`CREATE USER`命令创建一个新用户,例如:
```sql
CREATE USER new_user IDENTIFIED BY password;
```
将`new_user`替换为你想要的用户名,`password`替换为你要设置的密码。
3. **启用账户**:
确保新用户状态为启用,如果默认就是启用状态,则不需要这一步:
```sql
GRANT ACCOUNT UNLOCK TO new_user;
```
4. **授予查询权限**:
对于指定的数据库,你需要使用`GRANT SELECT`命令,格式如下:
```sql
GRANT SELECT ON database_name.* TO new_user;
```
将`database_name`替换为你要分配权限的具体数据库名称,例如`hr`, `sales`等。
5. **锁定其他权限**:
为了保证用户只能进行查询操作,需要限制用户的其他操作权限:
```sql
REVOKE INSERT, UPDATE, DELETE, REFERENCES, TRIGGER, CREATE, DROP, ALTER FROM new_user;
```
6. **保存更改**:
最后记得提交事务,或者关闭会话并重启,以使更改生效。
阅读全文