MySQL 存取权限系统
2008-12-19 11:14:57 来源:WEB开发网2. 存取控制:连接证实
身份检查使用user表3个(Host, User和Password)范围字段。服务器只有在一个user表条目匹配你的主机名和用户名并且你提供了正确的口令时才接受连接。
注:一个Host值可以是主机名或一个IP数字,或'localhost'指出本地主机。 可以在Host字段里使用通配符字符“%”和“_”。 Host值'%'匹配任何主机名。当一个连接被尝试时,服务器浏览排序的条目并使用找到的第一个匹配。
普遍的误解是认为,对一个给定的用户名,当服务器试图对连接寻找匹配时,明确命名那个用户的所有条目将首先被使用。这明显不是事实。
3. 存取控制:请求证实
一旦你建立了一个连接,服务器进入阶段2。对在此连接上进来的每个请求,服务器检查你是否有足够的权限来执行它,授权表用GRANT和REVOKE命令操作。
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[, user_name [IDENTIFIED BY 'password'] ...]
[WITH GRANT OPTION]
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
FROM user_name [, user_name ...]
GRANT在MySQL 3.22.11或以后版本中实现。对于更早MySQL版本,GRANT语句不做任何事情。
GRANT和REVOKE命令允许系统主管在4个权限级别上授权和撤回赋予MySQL用户的权利:
全局级别
全局权限作用于一个给定服务器上的所有数据库。这些权限存储在mysql.user表中。
更多精彩
赞助商链接