Python Generate reports for Oracle username Role/Privs

25 篇文章 0 订阅
3 篇文章 0 订阅

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值