这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~
前提是有MySQL root权限
例子:建立另一个超级用户(所有权限)的方法
GRANT ALL ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION
localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接.还可以用通配符"%",比如%.im286.com,或者202.97.224.%
*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)
ALL 是指全部语句的 *** 作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)
语法大概就是这样吧.
用户管理mysql>use mysql
查看
mysql>select host,user,password from user
创建
mysql>create user zx_root IDENTIFIED by 'xxxxx' //identified by 会将纯文本密码加密作为散列值存储
修改
mysql>rename user feng to newuser;//mysql 5之后可以使用,之前需要使用update 更新user表
删除
mysql>drop user newuser //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限
更改密码
mysql>set password for zx_root =password('xxxxxx')
mysql>update mysql.user set password=password('xxxx') where user='otheruser'
查看用户权限
mysql>show grants for zx_root
赋予权限
mysql>grant select on dmc_db.* to zx_root
回收权限
mysql>revoke select on dmc_db.* from zx_root //如果权限不存在会报错
1,Mysql下创建新的用户语法:
1.create user 用户名 identified by '密码'
例:create user xiaogang identified by '123456'
新创建的用户,默认情况下是没有任何权限的。
2. 如何给用户分配权限
语法:
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名'
例:给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'%'
这个时候 xiaogang 就拥有了 所有权限了
3 如何更精准的控制用户的权限呢?
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名'
例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;
grant select on temp.temp1 to 'xiaogang'@'%' //这个时候 xiaogang 就具有查询temp小的temp1的权限了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)