The following table maps a set of user-related operations expressed as pseudo-API calls to the SQL commands that perform them.
Operation | MySQL | Notes |
---|---|---|
AddUser(name, password) | create user name identified by ‘password’ | 1 |
AssignRoleOrPrivilege(user, roleOrPriv) | grant roleOrPriv on *.* to user | 2 |
DropUser(name) | drop user name | |
GetDatastores() | show databases | 3 |
GetDbUsers() | select user as name from mysql.user | 4 |
GetDbUsers(inDatastore) | select distinct grantee as name from information_schema.schema_privilges where table_schema = ‘inDatastore’ | 5 |
GetRolesOrPrivileges() | select distinct privilege_type from information_schema.user_privileges where grantee like “’root’%” order by privilege_type | 6 |
GrantAccessToDatastore(user, datastore) | grant all on datastore.* to user | 7 |
GrantAccessToDatastore(user, datastore, priv) | grant priv on datastore.* to user | 8 |
RevokeAccessToDatastore( user, datastore, priv) | revoke priv on datastore.* from user | 9 |
RevokeRoleOrPrivilege(user, roleOrPriv) | revoke roleOrPriv on *.* from user | 10 |
ShowAccessToDatastore(user, datastore) | select privilege_type from information_schema.schema_privileges where table_schema = ‘datastore’ and grantee = “‘user@’%’” order by privilege_type | |
ShowPrivilges(user) | select * from mysql.user where user = ‘user’ | 11 |