def test_change_user(self): connect_kwargs = self.connect_kwargs.copy() connect_kwargs['unix_socket'] = None connect_kwargs['ssl_disabled'] = False cmy1 = MySQL(buffered=True) cmy1.connect(**connect_kwargs) cmy2 = MySQL(buffered=True) cmy2.connect(**connect_kwargs) new_user = { 'user': '******', 'host': self.config['host'], 'database': self.connect_kwargs['database'], 'password': '******', } try: cmy1.query("DROP USER '{user}'@'{host}'".format(**new_user)) except MySQLInterfaceError: # Probably not created pass stmt = ("CREATE USER '{user}'@'{host}' IDENTIFIED WITH " "caching_sha2_password").format(**new_user) cmy1.query(stmt) if tests.MYSQL_VERSION < (8, 0, 5): cmy1.query("SET old_passwords = 0") res = cmy1.query("SET PASSWORD FOR '{user}'@'{host}' = " "PASSWORD('{password}')".format(**new_user)) else: res = cmy1.query("ALTER USER '{user}'@'{host}' IDENTIFIED BY " "'{password}'".format(**new_user)) cmy1.query("GRANT ALL ON {database}.* " "TO '{user}'@'{host}'".format(**new_user)) cmy2.query("SHOW GRANTS FOR {user}@{host}".format(**new_user)) cmy2.query("SELECT USER()") orig_user = cmy2.fetch_row()[0] cmy2.free_result() cmy2.change_user(user=new_user['user'], password=new_user['password'], database=new_user['database']) cmy2.query("SELECT USER()") current_user = cmy2.fetch_row()[0] self.assertNotEqual(orig_user, current_user) self.assertTrue(u"{user}@".format( **new_user) in current_user.decode('utf8')) cmy2.free_result()
def test_change_user(self): connect_kwargs = self.connect_kwargs.copy() connect_kwargs['unix_socket'] = None connect_kwargs['ssl_disabled'] = False cmy1 = MySQL(buffered=True) cmy1.connect(**connect_kwargs) cmy2 = MySQL(buffered=True) cmy2.connect(**connect_kwargs) new_user = { 'user': '******', 'host': self.config['host'], 'database': self.connect_kwargs['database'], 'password': '******', } try: cmy1.query("DROP USER '{user}'@'{host}'".format(**new_user)) except MySQLInterfaceError: # Probably not created pass stmt = ("CREATE USER '{user}'@'{host}' IDENTIFIED WITH " "caching_sha2_password").format(**new_user) cmy1.query(stmt) if tests.MYSQL_VERSION < (8, 0, 5): cmy1.query("SET old_passwords = 0") res = cmy1.query("SET PASSWORD FOR '{user}'@'{host}' = " "PASSWORD('{password}')".format(**new_user)) else: res = cmy1.query("ALTER USER '{user}'@'{host}' IDENTIFIED BY " "'{password}'".format(**new_user)) cmy1.query("GRANT ALL ON {database}.* " "TO '{user}'@'{host}'".format(**new_user)) cmy2.query("SHOW GRANTS FOR {user}@{host}".format(**new_user)) cmy2.query("SELECT USER()") orig_user = cmy2.fetch_row()[0] cmy2.free_result() cmy2.change_user(user=new_user['user'], password=new_user['password'], database=new_user['database']) cmy2.query("SELECT USER()") current_user = cmy2.fetch_row()[0] self.assertNotEqual(orig_user, current_user) self.assertTrue( u"{user}@".format(**new_user) in current_user.decode('utf8')) cmy2.free_result()