Python Generate reports for Oracle username Role/Privs
python code#!/usr/bin/env pythonimport cx_Oracleusername='zwc'password='zwc'database='oraprod'conn=cx_Oracle.connect(username,password,database)curs=conn.cursor()user_query='select username
·
python code
#!/usr/bin/env python
import cx_Oracle
username='zwc'
password='zwc'
database='oraprod'
conn=cx_Oracle.connect(username,password,database)
curs=conn.cursor()
user_query='select username from dba_users order by username'
curs.parse(user_query)
curs.execute(None)
rows=curs.fetchall()
user_sysprivs_curs=conn.cursor()
user_sysprivs_query='select privilege from dba_sys_privs where grantee = :username'
user_sysprivs_curs.parse(user_sysprivs_query)
user_roleprivs_curs=conn.cursor()
user_roleprivs_query='select granted_role from dba_role_privs where grantee = :username'
user_roleprivs_curs.parse(user_roleprivs_query)
fl=open('username_privs_report.html','w')
fl.write('<html> \
<body> \
<h1>Username SysPrivs/Roles Report</h1> \
<table border=1> \
<tr><th>UserName</th><th>Role/Priv</th>Detail</th></tr>')
for r in rows:
fl.write('<tr style="background-color: #CCCCCC;"><td>' + r[0] + '</td><td> </td><td>')
user_roleprivs_curs.execute(None,username=r[0])
rows_roleprivs=user_roleprivs_curs.fetchall()
if not rows_roleprivs:
fl.write('<tr><td> </td><td>Role</td><td>No roles</td></tr>')
else:
fl.write('<tr><td> </td><td>Role</td><td> </td></tr>')
for role_row in rows_roleprivs:
fl.write('<tr><td> </td><td> </td><td>' + role_row[0] + '</td></tr>')
user_sysprivs_curs.execute(None,username=r[0])
rows_sysprivs=user_sysprivs_curs.fetchall()
if not rows_sysprivs:
fl.write('<tr><td> </td><td>Sys Privs</td><td>No Sys Privs</td></tr>')
else:
fl.write('<tr><td> </td><td>Sys Privs</td><td> </td></tr>')
for syspriv_row in rows_sysprivs:
fl.write('<tr><td> </td><td> </td><td>' + syspriv_row[0] + '</td></tr>')
fl.write('</table> \
</body> \
</html>')
fl.close()
report
更多推荐
已为社区贡献1条内容
所有评论(0)