这篇"怎么添加一个mysql用户并给予权限"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么添加一个mysql用户并给予权限"文章吧.
CREATE?USER?'username'@'host'?IDENTIFIED?BY?'password';
mysql>?create?user?'hh'@'%'?identified?by?'123456'; Query?OK,?0?rows?affected?(0.01?sec)
查看一下是否创建成功:?
mysql>?select?user,host?from?user; +------------------+-----------+ |?user???|?host?| +------------------+-----------+ |?caona??|?%??| |?hh???|?%??| |?root???|?%??| |?mysql.infoschema?|?localhost?| |?mysql.session?|?localhost?| |?mysql.sys??|?localhost?| +------------------+-----------+ 6?rows?in?set?(0.00?sec)
创建完用户后hellip;hellip;
老板:好,比以前有进步了,那你再给joytom这个用户设置一个权限,只允许查询和修改copytest数据库中的student表.
小王信手拈来,又熟练的操作了一波:
grant?privileges?on?database.tablename?to?"username"@'host';
privileges:用户的操作权限,如 SELECT,INSERT,UPDATE 等,如果要授予所的权限则使用 ALL.
mysql>?grant?select,update?on?mysql.user?to?'hh'@'%'; Query?OK,?0?rows?affected?(0.02?sec)
mysql>?grant?SHOW?VIEW?on?mysql.user?to?'hh'@'%'; Query?OK,?0?rows?affected?(0.01?sec) ? mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.01?sec)
老板:咳咳,很好,现在 joytom 不是有三个权限了么(查询,修改,查询视图),那你把查询视图的权限给去掉,只留查询和修改.
小王心中暗喜,这我都学了,很基础的啊hellip;hellip;
revoke?privileges?ON?database.tablename?FROM?'username'@'host';
撤销(revoke)的和授予(grant)的基本一样,除了 revoke(对应 grant)和 from(对应 to)
mysql>?revoke?SHOW?VIEW?on?mysql.user?from?'hh'@'%'; Query?OK,?0?rows?affected?(0.01?sec) ? mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.01?sec)
再次查看:?
?mysql>?show?grants?for?'hh'@'%'; +----------------------------------------------------+ |?Grants?for?hh@%??????| +----------------------------------------------------+ |?GRANT?USAGE?ON?*.*?TO?+hh+@+%+????| |?GRANT?SELECT,?UPDATE?ON?+mysql+.+user+?TO?+hh+@+%+?| +----------------------------------------------------+ 2?rows?in?set?(0.00?sec)
发现已经没了查看视图的权限.
grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效.
老板:把 joytom 这个用户删掉让我看看.
drop?user?username@host
先查看一下现在的所有用户:
mysql>?select?user,host?from?user; +------------------+-----------+ |?user???|?host?| +------------------+-----------+ |?caona??|?%??| |?hh???|?%??| |?root???|?%??| |?mysql.infoschema?|?localhost?| |?mysql.session?|?localhost?| |?mysql.sys??|?localhost?| +------------------+-----------+ 6?rows?in?set?(0.00?sec)
删除 hh:
mysql>?drop?user?hh@'%'; Query?OK,?0?rows?affected?(0.01?sec)
再次查看,发现已经没了 joytom 这个用户:
mysql>?select?user,host?from?user; +------------------+-----------+ |?user???|?host?| +------------------+-----------+ |?caona??|?%??| |?root???|?%??| |?mysql.infoschema?|?localhost?| |?mysql.session?|?localhost?| |?mysql.sys??|?localhost?| +------------------+-----------+ 5?rows?in?set?(0.00?sec)
老板:把 joytom 这个用户密码修改一下.
小王:好嘞老板.
要想为匿名账户指定密码,可以使用SET PASSWORD或UPDATE.在两种情况中,一定要使用PASSWORD()函数为密码加密
在Windows/Unix中使用PASSWORD的方法:
mysql>?SET?PASSWORD?FOR?''@'localhost'?=?PASSWORD('newpwd'); mysql>?SET?PASSWORD?FOR?''@'%'?=?PASSWORD('newpwd');
为匿名账户指定密码的另一种方法是使用UPDATE直接修改用户表.
在Windows和Unix中的过程是相同的.
下面的UPDATE语句同时为两个匿名账户指定密码:
mysql>?UPDATE?mysql.user?SET?Password?=?PASSWORD('newpwd')?WHERE?User?=?''; mysql>?FLUSH?PRIVILEGES;
①.、?修改用户登录密码
?ALTER?USER?'caona'@'%'?IDENTIFIED?WITH?MYSQL_NATIVE_PASSWORD?BY?'123456';
感谢老板,我会继续努力,我这就去整理一下课件.
强制设置为密码过期:
强制设置密码过期后,虽然能够登陆,但是一切权限都为空了.
在创建的时候锁定用户:
已存在的时候锁定用户:
解锁账号:
老板:现在你对 mysql 的权限管理掌握的还算可以了,咳咳,今天下班前给我整理一个权限常用关键字,整理不好就加会班吧.
小王想,幸亏这个我在学的时候就已经整理过啊,看样今天不用加班了!
权限
意义
ALL [PRIVILEGES]
设置除GRANT OPTION之外的所有简单权限
ALTER
允许使用ALTER TABLE
ALTER ROUTINE
更改或取消已存储的子程序
CREATE
允许使用CREATE TABLE
CREATE ROUTINE
创建已存储的子程序
CREATE TEMPORARY TABLES
允许使用CREATE TEMPORARY TABLE
CREATE USER
允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES.
CREATE VIEW
允许使用CREATE VIEW
DELETE
允许使用DELETE
DROP
允许使用DROP TABLE
EXECUTE
允许用户运行已存储的子程序
FILE
INDEX
允许使用CREATE INDEX和DROP INDEX
INSERT
允许使用INSERT
LOCK TABLES
允许对您拥有SELECT权限的表使用LOCK TABLES
PROCESS
允许使用SHOW FULL PROCESSLIST
REFERENCES
未被实施
RELOAD
允许使用FLUSH
REPLICATION CLIENT
允许用户询问从属服务器或主服务器的地址
REPLICATION SLAVE
用于复制型从属服务器(从主服务器中读取二进制日志事件)
SELECT
允许使用SELECT
SHOW DATABASES
SHOW DATABASES显示所有数据库
SHOW VIEW
允许使用SHOW CREATE VIEW
SHUTDOWN
允许使用mysqladmin shutdown
SUPER
允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections.
UPDATE
允许使用UPDATE
USAGE
"无权限"的同义词
GRANT OPTION
允许授予权限
以上就是土嘎嘎小编为大家整理的怎么添加一个mysql用户并给予权限相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!