如何查看oracle数据库里的用户名和密码

说实话,在Oracle这儿看用户名确实挺直的,随便哪个DBA都能顺手办到。
我之前帮客户调过系统,直接用SQLPlus连上去,敲个SELECT username FROM dba_users;就出来了,屏幕上哗啦一下全列出来了,比查快递单还方便。

但密码这事儿啊,Oracle玩得就花。
就算你把用户名都列出来了,密码字段那列永远是乱码,像加密过一样。
我记得有回我拿个十六进制的工具去分析文件,对着那段乱码琢磨了半天,最后发现人家根本没把明文密码存里面,直接是加密后的哈希值,所以谁也看不懂。

有意思的是修改密码的操作。
你要是想改个用户密码,比如把'olduser'的密码改掉,必须得用ALTER USER olduser IDENTIFIED BY newpassword;这种命令。
我当时操作过一次,忘了旧密码连登录都进不去,最后只能找系统管理员把数据库重启了,把旧密码临时改成空密码先登进去再改回来。
那场面...啧啧。

但要说权限,SYSDBA这身份可真是"万能钥匙"。
我以前在测试环境瞎鼓捣时,有回不小心把SYSDBA权限给忘了关,结果第二天发现连系统管理员自己建的测试表都能删了。
幸好是测试环境,要是生产环境...啧,我这人最怕就是这种"不小心"。
所以我现在操作SYSDBA都得开个单独的终端,改完命令马上用EXIT退出来,生怕哪天手滑多了几行命令。

块儿没跑过的地方我不敢瞎说。
但数据我记得是Oracle 1 2 c开始,默认密码加密策略更强了。
你要是用的旧版本,或者自定义了加密算法,那密码长啥样就得看具体配置了。
这种细节,我一般都建议直接翻官方文档,或者用DBMS_CRYPTO这种包自己生成几个样本看看,绝对比在这儿跟我扯半天强。

说白了,SYSDBA权限能干啥,能看用户名、能改密码、能干啥都行,这就是为啥得管住自己双手的原因。
定期换密码这事儿,我客户那儿就搞得挺严,每个季度都得换,换了还必须跟员工确认过才能算数。
有时候员工嫌烦,我就在旁边敲敲键盘说:"兄弟,这可不是我说的,是公司规定,你要是连密码都记不住,以后系统出问题你找谁哭去?"通常他们就不吱声了。

查看oracle数据库有哪些可登录用户

SELECT username FROM dba_users WHERE account_status='OPEN';
这就是结果。
用DBA_USERS视图筛选ACCOUNT_STATUS='OPEN'即可。

注意:需以SYSDBA权限执行。

oracle数据库怎么查询所有用户

说白了,查Oracle所有用户就三步走:用all_users视图、注意拼写、看权限。

先说最重要的,all_users这个视图是Oracle自带的标准视图,去年我们跑那个金融系统项目就是靠它快速盘点用户——只要执行SELECT username FROM all_users;就行,这个语句能跑通,基本就对了。
另外一点,这个视图对所有用户都开放,哪怕你是个临时账号也能看到,但要是去查dba_users,那得有DBA权限,这个视图信息量更全,去年有个同事忘了权限直接报错。
还有个细节挺关键的,别搞成all_user,那个是查不出来的,用行话说叫语法错误,其实就是前面一个小输入错误把后面全拖垮了。

我一开始也以为user_users也能查,后来发现不对,Oracle里其实是没这个视图的,想看自己有啥权限就用user_privileges,这个才是正经玩意儿。
等等,还有个事,记得把SQL语句用分号结尾,不然报错概率翻倍,说实话挺坑的。

建议多跑跑这个查询,熟悉下视图结构,特别是权限这块儿,很多人没注意。