sqlplus 查询dba_users 密码不显示
时间: 2023-08-04 16:04:04 浏览: 102
在 SQL*Plus 中,您可以使用 SET命令来控制查询结果的显示方式。如果您不希望在查询 `dba_users` 表时显示密码列,可以使用以下命令:
```
SET COLSEP ,
COLUMN password NEW_VALUE pw NOPRINT
SELECT username, account_status, created, profile, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE, PASSWORD_EXPIRY_DATE, PASSWORD_VERSIONS, EXTERNAL_NAME, PASSWORD_LOCK_TIME, PASSWORD_GRACE_TIME, COMMON, ORACLE_MAINTAINED
FROM dba_users;
```
在上述命令中,我们使用 `COLUMN` 命令将密码列的属性进行了修改。通过设置 `NEW_VALUE` 参数,我们将密码列的值存储在了 `pw` 变量中。同时,我们将 `NOPRINT` 参数设置为该列不显示在查询结果中。
最后,我们将查询结果的列分隔符设置为逗号,以便于将其导出到 CSV 文件中。您可以根据需要修改列分隔符以及其他设置。
相关问题
请用sqlplus命令和sql语句验证system表空间和users表空间的区别;
在Oracle数据库中,你可以使用SQL*Plus命令和SQL查询来比较system和users表空间。首先,你需要登录到Oracle SQL*Plus环境:
```sqlplus
username/password@database_name
```
然后,你可以运行一些SQL命令来获取关于这两个表空间的信息。这里有一些基本的查询示例:
1. **查看当前用户所在表空间**:
```sql
SELECT tablespace_name FROM dba_users WHERE username = USER;
```
这将显示当前用户的默认表空间。
2. **查看system和users表空间的基本信息**:
```sql
SELECT * FROM dba_tablespaces WHERE name IN ('SYSTEM', 'USERS');
```
这会返回每个表空间的名称、状态、大小等信息。
3. **比较它们的使用情况**:
```sql
SELECT tablespace_name, total_space, used_space, free_space FROM dba_data_files WHERE tablespace_name IN ('SYSTEM', 'USERS') ORDER BY tablespace_name;
```
这将分别展示system和users表空间的总空间、已使用的空间和剩余空间。
请注意,系统表空间(SYSTEM)通常用于存储系统数据,如控制文件、数据字典和其他重要元数据,而用户表空间(USERS)则由用户创建并用于存放他们的用户对象,如索引、视图和表等。
sqlplus时root用户可以登录而其他用户登不进去该怎么解决
首先,可以检查其他用户是否在Oracle数据库中被正确创建,并且具有正确的权限。可以使用如下SQL语句查询用户及其权限:
```
SELECT * FROM DBA_USERS;
SELECT * FROM DBA_ROLE_PRIVS;
```
如果其他用户已经被正确创建并且具有正确的权限,但是仍然无法登录,则可能需要检查以下几个方面:
1. 用户的密码是否正确:可以使用ALTER USER语句修改用户密码或者使用密码文件来管理用户密码。
2. 用户是否被锁定:如果用户失败的登录尝试次数超过了最大次数,则用户可能会被锁定。可以使用ALTER USER语句来解锁用户。
3. 用户是否有访问权限:可以使用GRANT语句为用户授予访问权限。
如果以上方法都无法解决问题,可以考虑重新安装Oracle数据库或者联系Oracle技术支持人员进行帮助。
阅读全文