Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0b91a60

Browse files
committed
Patch for an Issue #1050
1 parent 8947f2d commit 0b91a60

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

plugins/generic/users.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -424,17 +424,18 @@ def getPrivileges(self, query2=False):
424424
elif Backend.isDbms(DBMS.DB2):
425425
privs = privilege.split(",")
426426
privilege = privs[0]
427-
privs = privs[1]
428-
privs = list(privs.strip())
429-
i = 1
430-
431-
for priv in privs:
432-
if priv.upper() in ("Y", "G"):
433-
for position, db2Priv in DB2_PRIVS.items():
434-
if position == i:
435-
privilege += ", " + db2Priv
436-
437-
i += 1
427+
if len(privs) > 1:
428+
privs = privs[1]
429+
privs = list(privs.strip())
430+
i = 1
431+
432+
for priv in privs:
433+
if priv.upper() in ("Y", "G"):
434+
for position, db2Priv in DB2_PRIVS.items():
435+
if position == i:
436+
privilege += ", " + db2Priv
437+
438+
i += 1
438439

439440
privileges.add(privilege)
440441

xml/queries.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,8 @@
612612
<!-- NOTE: On DB2 it is not possible to list password hashes, since they are handled by the OS -->
613613
<passwords/>
614614
<privileges>
615-
<inband query="SELECT grantee,RTRIM(tabschema)||'.'||tabname||CHR(44)||controlauth||alterauth||deleteauth||indexauth||insertauth||refauth||selectauth||updateauth FROM syscat.tabauth" condition="grantee"/>
616-
<blind query="SELECT tabschema||'.'||tabname||CHR(44)||controlauth||alterauth||deleteauth||indexauth||insertauth||refauth||selectauth||updateauth FROM (SELECT ROW_NUMBER() OVER () AS LIMIT,syscat.tabauth.* FROM syscat.tabauth WHERE grantee='%s') AS foobar WHERE LIMIT=%d" count="SELECT COUNT(*) FROM syscat.tabauth WHERE grantee='%s'"/>
615+
<inband query="SELECT grantee,RTRIM(tabschema)||'.'||tabname||','||controlauth||alterauth||deleteauth||indexauth||insertauth||refauth||selectauth||updateauth FROM syscat.tabauth" condition="grantee"/>
616+
<blind query="SELECT tabschema||'.'||tabname||','||controlauth||alterauth||deleteauth||indexauth||insertauth||refauth||selectauth||updateauth FROM (SELECT ROW_NUMBER() OVER () AS LIMIT,syscat.tabauth.* FROM syscat.tabauth WHERE grantee='%s') AS foobar WHERE LIMIT=%d" count="SELECT COUNT(*) FROM syscat.tabauth WHERE grantee='%s'"/>
617617
</privileges>
618618
<roles/>
619619
<!-- NOTE: in DB2 schema names are the counterpart to database names on other DBMSes -->
@@ -626,8 +626,8 @@
626626
<blind query="SELECT tabname FROM (SELECT ROW_NUMBER() OVER () AS LIMIT,tabname FROM sysstat.tables WHERE tabschema='%s') AS foobar WHERE LIMIT=INT('%d')" count="SELECT COUNT(*) FROM sysstat.tables WHERE tabschema='%s'"/>
627627
</tables>
628628
<columns>
629-
<inband query="SELECT name,RTRIM(coltype)||CHR(40)||RTRIM(CAST(length AS CHAR(254)))||CHR(41) FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" condition="name"/>
630-
<blind query="SELECT name FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" query2="SELECT RTRIM(coltype)||CHR(40)||RTRIM(CAST(length AS CHAR(254)))||CHR(41) FROM sysibm.syscolumns WHERE tbname='%s' AND name='%s' AND tbcreator='%s'" count="SELECT COUNT(name) FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" condition="name"/>
629+
<inband query="SELECT name,RTRIM(coltype)||'('||RTRIM(CAST(length AS CHAR(254)))||')' FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" condition="name"/>
630+
<blind query="SELECT name FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" query2="SELECT RTRIM(coltype)||'('||RTRIM(CAST(length AS CHAR(254)))||')' FROM sysibm.syscolumns WHERE tbname='%s' AND name='%s' AND tbcreator='%s'" count="SELECT COUNT(name) FROM sysibm.syscolumns WHERE tbname='%s' AND tbcreator='%s'" condition="name"/>
631631
</columns>
632632
<dump_table>
633633
<inband query="SELECT %s FROM %s"/>

0 commit comments

Comments
 (0)