user 表范围字段决定是否允许或拒绝到来的连接。对于允许的连接,权限字段指出用户的全局(超级用户)权限。
db 和host 表一起使用:
db 表范围字段决定用户能从哪个主机存取哪个数据库。权限字段决定允许哪个操作。
- 当你想要一个给定的
db 条目应用于若干主机时,host 表作为db 表的扩展被使用。例如,如果你想要一个用户能在你的网络从若干主机使用一个数据库,在用户的db 表的Host 条目设为空值,然后将那些主机的每一个移入host 表。这个机制详细描述在6.8存取控制,阶段2:请求证实。
tables_priv 和columns_priv 表类似于db 表,但是更精致:他们在表和列级应用而非在数据库级。
注意管理权限(reload,shutdown,等等)仅在user 表中被指定。这是因为管理性操作是服务器本身的操作并且不是特定数据库,因此没有理由在其他授权表中列出这样的权限。事实上,只需要请教user 表来决定你是否执行一个管理操作。
file权限也仅在user 表中指定。它不是管理性权限,但你读或谢在服务器主机上的文件的的能力独立于你正在存取的数据库。
当sql/Index.html'>mysqld 服务器启动时,读取一次授权表内容。对授权表的更改生效在6.9权限更改何时生效描述。
当你修改授权表的内容时,确保你按你想要的方式更改权限设置是一个好主意。为帮助诊断问题,见6.13“存取拒绝引起” 错误的原因。对于安全问题上的忠告,见6.14怎么对使MySQL安全对抗解密高手。
一个有用的诊断工具是sql/Index.html'>mysqlaccess 脚本,由CarlierYves提供给MySQL分发。使用--help 选项调用sql/Index.html'>mysqlaccess 查明它怎样工作。注意:sql/Index.html'>mysqlaccess 仅用user 、db 和host 表仅检查存取。它不检查表或列级权限。
6.7存取控制,阶段1:连接证实
(编辑:aniston)
|