zoukankan      html  css  js  c++  java
  • mysql新建数据库、新建用户及授权操作

    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

  • 相关阅读:
    luogu P1144 最短路计数
    codevs 1006 等差数列
    luogu P2419 [USACO08JAN]牛大赛Cow Contest
    luogu cogs 选数
    luogu P1186玛丽卡
    leetcode[69]Sqrt(x)
    leetcode[70]Climbing Stairs
    leetcode[71]Simplify Path
    leetcode[72]Edit Distance
    leetcode[73]Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/whitemouseV2-0/p/10537443.html
Copyright © 2011-2022 走看看