데이터베이스에서는 사용자에게 권한 부여, 데이터베이스 설계 등 다양한 작업을 수행할 수 있습니다. 오늘은 데이터베이스를 설계하고 권한을 부여하는 방법을 소개하겠습니다.
권한 및 디자인 데이터베이스
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 데이터베이스 백업 방법
mysqldump 백업 도구
SQLyog와 같은 데이터베이스 관리 도구
복사 데이터베이스 직접 파일 및 관련 구성 파일
mysqldump 클라이언트
기능:
Dump 데이터베이스
백업용 데이터베이스 수집
데이터를 다른 SQL 서버로 전송하세요. 반드시 MySQL Server일 필요는 없습니다.
-- 导出 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 모델 다이어그램 설계
데이터베이스 단계 설계
정보 수집
시스템 관련 담당자와 소통하고 논의하여 사용자 요구 사항을 완전히 이해하고 데이터베이스에 필요한 사항을 이해합니다. 작업을 완료합니다.
엔티티 식별 [엔티티]
데이터베이스에서 관리할 주요 개체 또는 엔터티를 식별합니다. 엔터티는 일반적으로 명사입니다
각 엔터티에 대한 세부 정보를 식별합니다. [속성]
엔티티 간의 관계를 식별합니다. [관계]
질문: 데이터 정규화가 필요한 이유는 무엇입니까?
비표준 테이블 디자인으로 인한 문제:
정보 중복
업데이트 예외
삽입 예외
정보를 올바르게 표시할 수 없습니다.
삭제 예외
유실된 정보
세 가지 주요 패러다임
첫 번째 정규형(1st NF)
첫 번째 정규형의 목표는 각 열의 원자성을 보장하는 것입니다. 각 열이 세분화될 수 없는 가장 작은 데이터 단위인 경우 첫 번째 정규형이 충족됩니다.
제2정규형(2nd NF)
제2정규형(2NF)은 제1정규형(1NF)을 기반으로 성립되는데, 즉 제2정규형(2NF)을 만족시키기 위해, 정규형(1NF)을 먼저 만족해야 합니다.
두 번째 정규형에서는 각 테이블이 한 가지만 설명해야 합니다
세 번째 정규형(3rd NF)
관계가 두 번째 정규형을 충족하고 기본 키를 제외한 다른 열이 기본 키 열에 전이적으로 종속되지 않는 경우 , 그러면 세 번째 정규형을 만족합니다.
세 번째 정규형은 데이터 테이블의 각 데이터 열이 기본 키와 직접 관련되고 간접적으로 관련될 수 없도록 보장해야 합니다.
정규화와 성능의 관계
특정 비즈니스 목표를 달성하려면 데이터베이스 정규화보다 데이터베이스 성능이 더 중요합니다
데이터 정규화 중에는 데이터베이스 성능을 종합적으로 고려해야 합니다
데이터를 추가하여 주어진 테이블 필드를 사용하여 정보를 검색하는 데 필요한 시간을 크게 줄입니다.
계산된 열을 주어진 테이블에 삽입하여 쿼리를 용이하게 합니다
관련 학습 권장 사항: mysql 튜토리얼(동영상)
위 내용은 데이터베이스를 설계하고 권한을 부여하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!