def revoke_access(self, username, hostname, database): """Give a user permission to use a given database.""" user = self._get_user(username, hostname) with LocalSqlClient(get_engine()) as client: r = query.Revoke(database=database, user=user.name, host=user.host, hashed=user.password) t = text(str(r)) client.execute(t)
def test_user_host(self): r = query.Revoke() r.user = '******' r.host = 'y' self.assertEqual(str(r), "REVOKE ALL ON *.* FROM `x`@`y`;")
def test_user(self): r = query.Revoke() r.user = '******' self.assertEqual(str(r), "REVOKE ALL ON *.* FROM `x`@`%`;")
def test_table(self): r = query.Revoke() r.user = '******' r.database = 'foo' r.table = 'bar' self.assertEqual(str(r), "REVOKE ALL ON `foo`.'bar' FROM `x`@`%`;")
def test_permissions(self): r = query.Revoke() r.user = '******' r.permissions = ['CREATE', 'DELETE', 'DROP'] self.assertEqual(str(r), "REVOKE CREATE, DELETE, DROP ON *.* FROM `x`@`%`;")
def test_defaults(self): r = query.Revoke() # Technically, this isn't valid for MySQL. self.assertEqual(str(r), "REVOKE ALL ON *.* FROM ``@`%`;")