whitemouseV2-0

 

1、创建数据库
create database if not exists test176 default charset utf8 collate utf8_general_ci;
#utf8_general_cs 大小写敏感
#如果数据库test176不存在,则创建数据库test76;charset utf8 字符集默认utf8,collate utf8_general_ci 大小写不敏感


2、创建用户
create user \'username\'@\'ip\' identified by \'password\'                   #创建用户名username,密码为password的用户,只能在该IP电脑上登录
create user \'username\'@\'localhost\' identified by \'password\'      #创建用户名username,密码为password的用户,只能本地登录
create user \'username\'@\'%\' identified by \'password\'      #创建用户名username,密码为password的用户,无IP限制
create user \'username\'@\'%\' identified by -      #创建密码为空的用户,不用密码可以登录
示例:
create user \'test\'@\'%\' identified by \'ios\'      #创建用户名为test,密码为ios的用户

3、查看执行的用户是否有放开授权的权限
select host,user,password,Grant_priv,Super_priv from mysql.user;      #查看所有用户是否有授权的权限

#给root用户放开授权的权限并提交刷新生效,客户端执行的话,执行后要重新打开一个客户端才能开始授权
UPDATE mysql.user SET Grant_priv=\'Y\', Super_priv=\'Y\' WHERE User=\'root\';
FLUSH PRIVILEGES;      #提交刷新权限

4、用户授权
grant privileges on databasename.tablename to \'username\'@\'host\'        #给用户授权,授权后的用户无给其他用户授权的权限
或者
grant privileges on databasename.tablename to \'username\'@\'host\' with grant option;      #授权后的用户有给其他用户授权的权限
#privileges表示权限,如select,insert,update,delete,alter,drop,create,all
#databasename.tablename 表示授权的数据库名和表名,也可以是#databasename.*(所有表)或者*.*(所有库的所有表)

示例:
grant select,insert,update,delete,create,drop,alter on localmysql.* to \'test\'@\'%\'        #%表示所有可登录的ip
#把数据库localmysql所有表的增删改查权限赋给test,不限制登录ip

grant select,insert,update on localmysql.* to \'test\'@\'%\' with grant option;
#with grant option表示授权后的用户能授权其他用户


grant select on localmysql.* to \'test\'@\'%\'          #%表示所有可登录的ip,表示只赋查询的权限给test用户
grant all on *.* to \'test\'@\'%\'          #表示把所有数据库和表的所有操作权限赋权给test
#all是所有权限,*.*是所有数据库和表,test表示数据库用户,%表示不限登录IP

注意:用以上命令授权的用户无权限给其它用户授权,如果想让该用户可以授权,用以下命令:
grant privileges on databasename.tablename to \'username\'@\'host\' WITH GRANT OPTION;
示例:
grant all on *.* to \'test\'@\'%\' with grant option;        #授权后,用户test也有权限授权给其他用户权限

5、修改用户名或者用户密码

修改用户名:
update mysql.user set user=\'testing\' where user=\'test\';
FLUSH PRIVILEGES;

#修改非当前登录用户密码
set password for \'username\'@\'ip\'=password(\'newpassword\');
FLUSH PRIVILEGES;
示例:
set password for \'iosgd\'@\'%\'=password(\'ios\');        #把用户iosgd的密码修改为ios
FLUSH PRIVILEGES;


#修改当前登录用户密码
set password=password(\'newpassword\');

示例:

set password=password(\'abc123\');       #把当前登录的用户密码修改为abc123

 

6、撤销用户权限:
revoke privileges on databasename.tablename from \'username\'@\'host\' #与授权是一样
示例:
revoke update,delete on localmysql.* from \'test\'@\'%\';       #表示撤销test用户localmysql数据库所有表的修改、删除权限
revoke all on *.* from \'test\'@\'%\' ;       #表示撤销test用户所有数据库、表的所有操作权限
注意点:给用户授权了select某个数据库或表的select权限时,是无法撤销的

 

7、删除用户
drop user \'username\'@\'ip\';      #删除用户

示例:

drop user \'test\'@\'%\';    #删除用户test

 

参考博客:https://www.cnblogs.com/zeroone/articles/2298942.html

 

分类:

技术点:

相关文章: