数据库安全检查中常涉及到对用户口令的基本检查。
如果用户的口令与用户名相同,则认定此用户的安全策略不高。
但用户口令是通过oracle算法加密,并不能简单看出被加密后的口令是否与用户名一致。
不过换种思路,如果对加密后的口令的值进行保留。
(不用担心还原的问题,oracle可通过加密的口令值重新设定用户的新口令–即还原口令)
然后修改用户的口令,使其与用户名相同,如果此时新的口令经过加密后的值,还是和原先保留的值一致,那么可认定原先的口令也和用户名相同了。
测试如下:
管理员A:
SQL> CREATE USER ZC IDENTIFIED BY ZC;
设置ZC用户的口令为大写ZC ,与用户名相同
管理员B:
SQL> SELECT NAME,PASSWORD FROM sys.user$ WHERE TYPE#=1 AND NAME=’ZC’;
NAME PASSWORD
—————————— ——————————
ZC 931282A72FB31E22
管理员B此时发现加密后的口令是<931282A72FB31E22>
管理员B修改口令,将口令修改为ZC
SQL> ALTER USER ZC IDENTIFIED BY ZC;
User altered
再次检查加密后的口令值
SQL> SELECT NAME,PASSWORD FROM sys.user$ WHERE TYPE#=1 AND NAME=’ZC’;
NAME PASSWORD
—————————— ——————————
ZC 931282A72FB31E22
检查后发现加密后的口令值还是<931282A72FB31E22>。
那么即可得出结论,修改前的口令也是ZC,与用户名相同。