用户可以使用CREATE DATABASE和CREATE TABLE语句来建立数据库和表。然而,只有拥有足够权限的用户方可拥有授权的权利。下列代码是MySQL建表授权语句的模板。
GRANT privileges ON database.table TO 'user'@'host';
其中,<privileges>是指要授予的权限,例如SELECT、INSERT、UPDATE和DELETE等,<database>和<table>则是指要授权的数据库和表名。'<user>’@'<host>’表示授权用户的用户名及其来源的主机或IP地址。
以下示例代码授予了用户’testuser’在本机的所有权限:
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
此处’*’表示授权用户访问所有的数据库和表。另外,使用WITH GRANT OPTION的参数使用户能够向其他用户授予权限。在多个授权语句之间使用逗号分隔,用户可以授予多个权限并赋给多个用户。
除了建表授权,MySQL还提供了其他多种授权的方法。例如,用户可以使用GRANT SELECT ON * . * TO ‘testuser’@’localhost’ WITH MAX_QUERIES_PER_HOUR 20 MAX_CONNECTIONS_PER_HOUR 1 MAX_USER_CONNECTIONS 0;来授权一个最大查询次数为20,最大连接数为1,最大用户连接数为0的权限。此外,用户还可使用REVOKE语句将授权的权限回收。