MySQL用户管理

MySQL用户管理

  • 在数据库中,通常包含很多重要的、敏感的数据,为了确保这些数据的安全性和完整性,在MySQL中通过为不同的MySQL用户赋予不同的权限来提高数据的安全性。MySQL中的用户分为root用户和普通用户两种,前者使超级管理员,拥有最高数据库权限,可以进行一切数据操作;后者只能拥有该用户被赋予的权限。
  1. 创建普通用户

    • 安装MySQL后默认提供root用户管理账号,由于拥有超级用户权限,因此很容易引发由误操作所导致的数据不安全问题。在实际开发中,除了一些必要的场合外,一般不建议使用root账户登录MySQL服务器。DBA(数据库管理员)为不同的数据库使用者创建一系列普通用户账户,赋予不同的权限,以保障数据的安全性。创建用户账户的语法格式如下

      • CREATE USER 'username'@'host' [IDENTIFIED BY [PASSWORD]'password']
        
      • 其中,IDENTIFIED BY 语句用来设置密码,默认时密码为空。其他参数介绍如下。

        • username:表示指定用户登陆的主机名。
        • host:表示指定用户登陆的主机名,如果只是本地用户可使用“localhost”,如果该用户可登录任何远程主机,可适用通配符“%”。
        • PASSWORD:表示使用哈希值设置密码,为可选项。
        • password:表示登陆时使用的明文密码。
  2. 执行GRANT语句创建用户并授权

    • 用户授权需要使用GRANT语句,其语法格式如下。

      GRANT priv_type ON databasename.tablename
         TO 'username'@'host' [IDENTIFIED BY [PASSWORD] 'password']
          [WITH GRANT OPTION];
      
      • priv_type 表示设置的用户操作权限,如果授予所有权限可适用ALL 。MySQL中的权限有很多,以下列出了常用的数据库或表操作权限。
        • CREATE和DROP权限,可以创建数据库和表,或删除已有数据库和表。
        • INSERT、DELETE、SELECT和UPDATE权限,允许在一个数据库现有的表上实施增、删、查、改操作。
        • ALTER权限,可以用ALTER TABLE来更改表的结构和重新命名新表。
      • databasename.tablename 表示所创建用户账号的权限范围,即只能在指定数据库和表上使用此权限,如果给所有数据库和表授权,则可使用“.”。
      • WITH GRANT OPTION表示对新建立的用户赋予GRANT权限,可选。
      • 其他部分与CREATE USER语句一致。
  3. 使用mysqladimin命令修改root账户密码

    • mysqladmin命令的语法格式如下

      mysqladmin -u root -p password "newpassword"
      
      • 其中newpassword为新密码,使用双引号括起来。
  4. 使用SET命令修改用户密码

    • 用户登录MySQL服务器后,可适用SET命令修改当前用户密码,语法格式如下。

      SET PASSWORD [FOR 'username'@'host']=PASSWORD("newpassword");
      
      • 其中,PASSWORD()函数用于对密码加密,“newpassword”是设置的新密码。如果修改非当前登录用户的密码,则需使用FOR关键字指定要修改的账户名。

      注意:只有超级管理员用户(如root用户)才能修改其他用户的密码,如果使普通用户,可省略FOR子句

  5. 删除普通用户

    • 在MySQL数据库中,可以使用DROP USER语句删除用户,语法格式如下。

      DROP USER 'username1'@'host'[,'username2'@'host'... ...];
      
      • 该语句可以用于删除一个或多个MySQL账户。

      注意:要使用DROP USER语句,必须拥有MySQL数据库的全局CREATE USER权限或DELETE权限,一般由数据库管理员(DBA)来执行此操作。

你可能感兴趣的:(MySQL用户管理)