This entry was posted by admin Monday, 26 April, 2010
1.“grant all on *.* to root@’%’ identified by ‘yourpassword’”——这个还可以顺带设置密码。
2.“flush privileges”——刷新一下,让权限生效。
mysql的一些其他的管理,可以用mysqladmin命令。可以用来设置密码什么的。
grant方面的详细信息可以看我下面的转载:
本文实例,运行于 MySQL 5.0 及以上版本。
MySQL 赋予用户权限命令的简单格式可概括为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@’%’
grant insert on testdb.* to common_user@’%’
grant update on testdb.* to common_user@’%’
grant delete on testdb.* to common_user@’%’
或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@’%’
hi 楼主,在数据库中创建包含很多,视图,索引,临时表的创建权限都能分开赋予,你可以执行 show privileges 来查看权限参数,我这边就以创建表为例,只包含查询表功能,其他修改,删除,备份没有权限;以下是步骤:1,create user 'tom'@'%' identified by '123456'---创建用户,无权限;
2, grant create,select on wangxh2.* to tom-----把wangxh2库的所有表的创建和查询赋予tom
3,flush privileges-----刷新权限表才能起效
接下来是测试:
mysql>show databases
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| wangxh2|
+--------------------+
3 rows in set (0.06 sec)
mysql>use wangxh2
Database changed
mysql>show tables
+-------------------+
| Tables_in_wangxh2 |
+-------------------+
| test |
+-------------------+
1 row in set (0.00 sec)
mysql>drop test
ERROR 1064 (42000): You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1
mysql>drop table test
ERROR 1142 (42000): DROP command denied to user 'tom'@'localhost' for table 'test'
mysql>select count(*) from test
+----------+
| count(*) |
+----------+
| 33554432 |
+----------+
1 row in set (0.01 sec)
mysql>insert into test values(1)
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test'
mysql>delete from test
ERROR 1142 (42000): DELETE command denied to user 'tom'@'localhost' for table 'test'
mysql>update test set id=1
ERROR 1142 (42000): UPDATE command denied to user 'tom'@'localhost' for table 'test'
mysql>create table test1 (id int)
Query OK, 0 rows affected (0.02 sec)
mysql>insert into test1 values(1)
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test1'
[mysql@localhost ~]$ mysqldump -u tom -paidengshan wangxh2 >/home/mysql/aa.sql
mysqldump: Got error: 1044: Access denied for user 'tom'@'%' to database 'wangxh2' when using LOCK TABLES
[mysql@localhost ~]$
-----------------------------------------------------------------------------------------
以上测试发现,tom对wangxh2有建表,查询表的权限,但是修改,删除,新增,备份都没有权限,达到你的需求了
mysql数据库远程访问设置方法1、修改localhost
更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
mysql>use mysql
mysql>update user set host = '%' where user = 'root'
mysql>select host, user from user
mysql>FLUSH PRIVILEGES
2、指定授权
使用myuser/mypassword从任何主机连接到mysql服务器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION
使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION
3、泛授权
mysql -h localhost -u root
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION//赋予任何主机上以root身份访问数据的权限
mysql>FLUSH PRIVILEGES
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)