返回顶部
首页 > 资讯 > 数据库 >怎么设计数据库及授予权限
  • 835
分享到

怎么设计数据库及授予权限

2024-04-02 19:04:59 835人浏览 薄情痞子
摘要

小编给大家分享一下怎么设计数据库及授予权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在数据库中

小编给大家分享一下怎么设计数据库及授予权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

数据库中,我们可以做许许多多的事情,比如给用户授予权限,设计数据库等等。

权限及设计数据库

用户管理

使用sqlyog 创建用户,并授予权限演示

怎么设计数据库及授予权限

基本命令

 ------------------
用户信息表:Mysql.user

-- 刷新权限
FLUSH PRIVILEGES
 
-- 增加用户  CREATE USER kuangshen IDENTIFIED BY '123456'
CREATE USER 用户名 IDENTIFIED BY [PASSWord] 密码(字符串)
    - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
    - 只能创建用户,不能赋予权限。
    - 用户名,注意引号:如 'user_name'@'192.168.1.1'
    - 密码也需引号,纯数字密码也要加引号
    - 要在纯文本中指定密码,需忽略PASSWORD关键词。要把密码指定为由PASSWORD()函数返回的混编值,需包含关键字PASSWORD

-- 重命名用户  RENAME USER kuangshen TO kuangshen2
RENAME USER old_user TO new_user

-- 设置密码
SET PASSWORD = PASSWORD('密码')    -- 为当前用户设置密码
SET PASSWORD FOR 用户名 = PASSWORD('密码')    -- 为指定用户设置密码

-- 删除用户  DROP USER kuangshen2
DROP USER 用户名

-- 分配权限/添加用户
GRANT 权限列表 ON 表名 TO 用户名 [IDENTIFIED BY [PASSWORD] 'password']
    - all privileges 表示所有权限
    - *.* 表示所有库的所有表
    - 库名.表名 表示某库下面的某表

-- 查看权限   SHOW GRANTS FOR root@localhost;
SHOW GRANTS FOR 用户名
    -- 查看当前用户权限
    SHOW GRANTS; 或 SHOW GRANTS FOR CURRENT_USER; 或 SHOW GRANTS FOR CURRENT_USER();

-- 撤消权限
REVOKE 权限列表 ON 表名 FROM 用户名
REVOKE ALL PRIVILEGES, GRANT OPTioN FROM 用户名    -- 撤销所有权限

权限解释

-- 权限列表
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    -- 允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE
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 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    -- 允许授予权限




-- 分析和存储表的关键字分布
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ...
-- 检查一个或多个表是否有错误
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
-- 整理数据文件的碎片
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

MySQL备份

数据库备份必要性

  • 保证重要数据不丢失

  • 数据转移

MySQL数据库备份方法

  • mysqldump备份工具

  • 数据库管理工具,如SQLyog

  • 直接拷贝数据库文件和相关配置文件

mysqldump客户端

作用 :

  • 转储数据库

  • 搜集数据库进行备份

  • 将数据转移到另一个SQL服务器,不一定是MySQL服务器

怎么设计数据库及授予权限

-- 导出
1. 导出一张表 -- mysqldump -uroot -p123456 school student >D:/a.sql
  mysqldump -u用户名 -p密码 库名 表名 > 文件名(D:/a.sql)
2. 导出多张表 -- mysqldump -uroot -p123456 school student result >D:/a.sql
  mysqldump -u用户名 -p密码 库名 表1 表2 表3 > 文件名(D:/a.sql)
3. 导出所有表 -- mysqldump -uroot -p123456 school >D:/a.sql
  mysqldump -u用户名 -p密码 库名 > 文件名(D:/a.sql)
4. 导出一个库 -- mysqldump -uroot -p123456 -B school >D:/a.sql
  mysqldump -u用户名 -p密码 -B 库名 > 文件名(D:/a.sql)

可以-w携带备份条件

-- 导入
1. 在登录mysql的情况下:-- source D:/a.sql
  source  备份文件
2. 在不登录的情况下
  mysql -u用户名 -p密码 库名 < 备份文件

规范化数据库设计

为什么需要数据库设计

当数据库比较复杂时我们需要设计数据库

糟糕的数据库设计 :

  • 数据冗余,存储空间浪费

  • 数据更新和插入的异常

  • 程序性能差

良好的数据库设计 :

  • 节省数据的存储空间

  • 能够保证数据的完整性

  • 方便进行数据库应用系统的开发

软件项目开发周期中数据库设计 :

  • 需求分析阶段: 分析客户的业务和数据处理需求

  • 概要设计阶段:设计数据库的E-R模型图 , 确认需求信息的正确和完整.

设计数据库步骤

  • 收集信息

    • 与该系统有关人员进行交流 , 座谈 , 充分了解用户需求 , 理解数据库需要完成的任务.

  • 标识实体[Entity]


    • 标识数据库要管理的关键对象或实体,实体一般是名词

  • 标识每个实体需要存储的详细信息[Attribute]

  • 标识实体之间的关系[Relationship]

三大范式

问题 : 为什么需要数据规范化?

不合规范的表设计会导致的问题:

  • 信息重复

  • 更新异常

  • 插入异常

    • 无法正确表示信息

  • 删除异常

    • 丢失有效信息

三大范式

第一范式 (1st NF)

第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元,则满足第一范式

第二范式(2nd NF)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。

第二范式要求每个表只描述一件事情

第三范式(3rd NF)

如果一个关系满足第二范式,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式.

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

规范化和性能的关系

为满足某种商业目标 , 数据库性能比规范化数据库更重要

在数据规范化的同时 , 要综合考虑数据库的性能

通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间

通过在给定的表中插入计算列,以方便查询

以上是“怎么设计数据库及授予权限”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么设计数据库及授予权限

本文链接: https://lsjlt.com/news/56210.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么设计数据库及授予权限
    小编给大家分享一下怎么设计数据库及授予权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在数据库中...
    99+
    2024-04-02
  • MYSQLl给用户授予数据库表权限
    给targetUserName用户授予databaseName单个数据库权限 grant all privileges on databaseName.* to targetUserName@"%" identified by "...
    99+
    2016-09-19
    MYSQLl给用户授予数据库表权限
  • 将数据库的所有权限授予MySQL用户?
    首先,使用 CREATE 命令创建用户和密码。语法如下。CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';...
    99+
    2023-10-22
  • mysql怎么赋予用户数据库权限
    要赋予用户数据库权限,可以使用以下步骤: 登录MySQL数据库服务器,可以使用如下命令: mysql -u root -p ...
    99+
    2024-04-12
    mysql 数据库
  • Ubuntu上怎么授予和移除sudo权限
    本篇内容介绍了“Ubuntu上怎么授予和移除sudo权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常,我们使用 adduse...
    99+
    2023-06-05
  • win10文件夹怎么授予访问权限
    要授予Windows 10文件夹访问权限,可以按照以下步骤操作:1. 鼠标右键点击要授予访问权限的文件夹,并选择“属性”选项。2. ...
    99+
    2023-09-01
    win10
  • MariaDB中怎么创建用户并授予权限
    要在MariaDB中创建用户并授予权限,您可以按照以下步骤操作: 首先,以具有管理员权限的用户登录到MariaDB服务器。 ...
    99+
    2024-04-09
    MariaDB
  • SQL怎么授予用户对表的修改权限
    要授予用户对表的修改权限,可以使用SQL语句中的GRANT命令。 语法如下: GRANT {permission_type(s)} ...
    99+
    2024-04-09
    SQL
  • MySQL之权限以及设计数据库案例讲解
    权限及设计数据库 用户管理 使用SQLyog 创建用户,并授予权限演示 基本命令 ------------------ 用户信息表:mysql.user -- 刷...
    99+
    2024-04-02
  • postgresql数据库权限怎么设置
    在postgresql中,权限可以通过以下几种方式进行设置: 使用GRANT命令授予用户或角色特定的权限,比如SELECT...
    99+
    2024-04-08
    postgresql
  • 阿里云数据库数据管理授权怎么设置
    简介 在使用阿里云数据库时,数据管理授权是非常重要的一环。通过设置合适的数据管理授权,可以控制用户对数据库的访问权限,确保数据的安全性和可靠性。本文将介绍如何设置阿里云数据库数据管理授权,帮助您更好地管理和保护数据库。数据管理授权设置步骤步...
    99+
    2024-01-14
    阿里 数据管理 数据库
  • 怎么在Fedora中为用户授予使用Docker的权限
    小编给大家分享一下怎么在Fedora中为用户授予使用Docker的权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为用户授予使用Docker的权限Fedora ...
    99+
    2023-06-16
  • 怎么在Ubuntu上为用户授予和移除sudo权限
    这篇文章主要介绍“怎么在Ubuntu上为用户授予和移除sudo权限”,在日常操作中,相信很多人在怎么在Ubuntu上为用户授予和移除sudo权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Ubuntu...
    99+
    2023-06-16
  • Spring + Struts2 + ExtJs 权限管理的设计(一)数据库的设计
    1、本系统的后台使用mysql数据库,SSH 框架,前端使用ExtJs实现。因为系统需要用到权限管理,所以作此记录,权限管理精确到前端的每一个按钮,甚至每一个action请求。废话不多说,直接进入主题(一)...
    99+
    2024-04-02
  • MySQL赋予用户的各种数据库操作权限
    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户,查询、插入、更新、删除 数据库中所...
    99+
    2023-08-31
    数据库
  • SQL Server 数据库权限设置
    一、登录权限:SQL server的身份验证模式有以下两种: 1、 Windows身份验证模式: 当使用Windows身份验证时,SQL server会使用操作系统中的Windows用户和密码。也就是说,当...
    99+
    2024-04-02
  • 数据设计之权限的实现
    目录前言RBAC模型数据权限数据规则关联资源、用户继续优化小结前言 在项目实际开发中我们不光要控制一个用户能访问哪些资源,还需要控制用户只能访问资源中的某部分数据。 控制一个用户能访...
    99+
    2022-11-13
    数据设计权限实现 数据权限
  • 用phpmyadmin怎么设置数据库用户权限
    小编给大家分享一下用phpmyadmin怎么设置数据库用户权限,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!在左侧选择要设置权限的数据库,并点击权限在弹出的窗口单击“编辑权限”进入权限设置页面...
    99+
    2024-04-02
  • 亚马逊授权服务器怎么设置权限
    登录AWS控制台:首先,在AWS控制台中登录,进入AWS设置页面,选择“控制台”选项卡,并在“控制台概览”中查找“授权”或“授权服务器”选项。 创建实例:在控制台实例下,选择“create instance”,然后单击“create”,在...
    99+
    2023-10-27
    亚马逊 权限 服务器
  • SQL server数据库的权限设置
    一、登录权限:SQL server的身份验证模式有以下两种: 1、 Windows身份验证模式: 当使用Windows身份验证时,SQL server会使用操作系统中的Windows用户和密码。也就是说,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作