diff options
-rw-r--r-- | lib/mysql_user | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/mysql_user b/lib/mysql_user index 602235a..64e1f3d 100644 --- a/lib/mysql_user +++ b/lib/mysql_user @@ -269,41 +269,41 @@ def privileges_unpack(priv): """ Take a privileges string, typically passed as a parameter, and unserialize it into a dictionary, the same format as privileges_get() above. We have this custom format to avoid using YAML/JSON strings inside YAML playbooks. Example of a privileges string: mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanother.*:ALL The privilege USAGE stands for no privileges, so we add that in on *.* if it's not specified in the string, as MySQL will always provide this by default. """ output = {} for item in priv.split('/'): pieces = item.split(':') if pieces[0].find('.') != -1: pieces[0] = pieces[0].split('.') for idx, piece in enumerate(pieces): if pieces[0][idx] != "*": pieces[0][idx] = "`" + pieces[0][idx] + "`" pieces[0] = '.'.join(pieces[0]) - output[pieces[0]] = pieces[1].upper().split(',') + output[pieces[0]] = [ g.strip() for g in pieces[1].upper().split(',') ] if '*.*' not in output: output['*.*'] = ['USAGE'] return output def privileges_revoke(cursor, user,host,db_table,grant_option): if grant_option: query = "REVOKE GRANT OPTION ON %s FROM '%s'@'%s'" % (db_table,user,host) cursor.execute(query) query = "REVOKE ALL PRIVILEGES ON %s FROM '%s'@'%s'" % (db_table,user,host) cursor.execute(query) def privileges_grant(cursor, user,host,db_table,priv): priv_string = ",".join(filter(lambda x: x != 'GRANT', priv)) query = "GRANT %s ON %s TO '%s'@'%s'" % (priv_string,db_table,user,host) if 'GRANT' in priv: query = query + " WITH GRANT OPTION" cursor.execute(query) |