Mysql权限管理,备份与三大范式

  1. mysql访问权限系统表

    mysql的权限由四个表来控制权限,分别是user表,db表,tables_priv表,columns_priv表

    表名 作用
    user 存放用户账号、密码、主机信息和全局权限
    db 数据库级别的权限表
    tables_priv 表级别的权限表
    columns_priv 列级权限表
    procs_priv 函数/存储过程权限表
  2. 查看用户命令

    --查看所有用户信息(包括授权信息)
    SELECT [*/指定字段] FROM mysql.user;
    --查看用户权限信息
    SHOW GRANTS FOR [用户名]@[主机名];
    --用户重命名
    RENAME USER [旧用户名]@[旧主机名] TO [新用户名]@[新主机名];
    --删除用户
    DROP user [用户名]@[主机名];
    --修改用户密码
     (1)  ALTER USER [用户名]@[主机名] IDENTIFIED BY [新密码];
     (2)  SET PASSWORD FOR [用户名]@[主机名] = PASSWORD([新密码]);
     (3)  GRANT USAGE ON *.* TO [用户名]@[主机名] IDENTIFIED BY [新密码];
     (4)  UPDATE  user SET password=password([新密码]) where user='root' and host='localhost';  
         (注意:user表中的密码字段需要查表之后才知道是具体字段名称) 
    --创建用户
    CREATE USER  'user_name'@'host'  IDENTIFIED BY  'password';
    --用户授权
    GRANT  [具体权限/all privileges] ON [数据库.数据表] TO [用户名]@[IP/localhost/域名/%]  IDENTIFIED BY [密码] [WITH GRANT OPTION]
    --删除权限语法:
    REVOKE [具体权限/all privileges] ON [数据库.数据表] FROM [用户名]@[IP/localhost/域名/%];
    
    
  3. 备份与恢复

    --MySQLdump常用
    mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql
    --还原
    mysql> source /data/mysqlDump/1.sql
    
    
  4. 数据库的三大范式

    第一范式(1NF):原子性(存储的数据(列)应该具有“不可再分性”),避免数据冗余和数据更新异常的问题。
    第二范式(2NF):唯一性 (消除非主键部分依赖联合主键中的部分字段,主键关系)(一定要在第一范式已经满足的情况下);需要实现每一行数据具有唯一可区分的特性,并不能有部分依赖关系。
    第三范式(3NF):独立性,第三范式要求数据表中的每个非主键字段都不依赖于其他非主键字段,而是直接依赖于主键。这样可以进一步减少数据冗余和更新异常的问题。

    遵循三大范式的原因:

    数据的一致性:通过遵循三大范式,可以确保数据的一致性。数据存储在多个表中,每个表都有特定的目的和结构,这样可以避免数据冗余和不一致的问题。
    数据的完整性:三大范式可以帮助我们保持数据的完整性。通过将数据分解为更小的、原子的数据单元,可以避免数据更新异常和数据丢失的问题。
    数据的查询效率:遵循三大范式可以提高数据库的查询效率。通过将数据分解为多个表,可以减少数据的冗余,提高查询的速度和效率。

    但是并不是所有的表,数据库都要符合三大范式,这个是根据业务要求以及具体形势来决定,总之,是否符合三大范式取决于具体的业务需求和性能要求。
    在设计数据库时,需要根据实际情况综合考虑系统需求、性能要求、数据复杂性和系统扩展性等因素,并权衡范式的优劣。

posted @ 2024-05-05 20:53  Hanyta  阅读(6)  评论(0编辑  收藏  举报