WEB开发网
开发学院数据库MySQL MySQL 存取权限系统 阅读

MySQL 存取权限系统

 2008-12-19 11:14:57 来源:WEB开发网   
核心提示: shell> mysql -u root mysqlmysql> UPDATE user SET Password=PASSWORD('new_password')WHERE user='root';mysql> FLUSH PRIVILE

  shell> mysql -u root mysql
  mysql> UPDATE user SET Password=PASSWORD('new_password')
  WHERE user='root';
  mysql> FLUSH PRIVILEGES;

在MySQL 3.22和以上版本中,你可以使用SET PASSWORD语句:

shell> mysql -u root mysql

mysql> SET PASSWORD FOR root=PASSWORD('new_password');

设置口令的另一种方法是使用mysqladmin命令:

shell> mysqladmin -u root password new_password

看看scripts/mysql_install_db脚本,看它如何安装缺省的权限。你可用它作为一个研究如何增加其他用户的基础

为了完全重建权限表,删除在包含mysql数据库的目录下所有“*.frm”,“*.MYI”和“*.MYD”文件。(这是在数据库目录下面命名为“mysql”的目录,当你运行mysqld --help时,它被列出。)然后运行mysql_install_db脚本,可能在首先编辑它拥有你想要的权限之后。

1. 向MySQL增加新用户权限

增加用户2个不同的方法:

通过使用GRANT语句或通过直接操作MySQL授权表。

比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。

  shell> mysql --user=root mysql
  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
  IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
  IDENTIFIED BY 'something' WITH GRANT OPTION;
  mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
  mysql> GRANT USAGE ON *.* TO dummy@localhost;
  monty

可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令('something'做这个。注意,我们必须对monty@localhost和monty@"%"发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。

admin

可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。

dummy

可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'--USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的权限。

也可以直接通过发出INSERT语句增加同样的用户存取信息,然后告诉服务器再次装入授权表:

  shell> mysql --user=root mysql
  mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
  'Y','Y','Y

上一页  1 2 3 4 5 

Tags:MySQL 存取 权限

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接