데이터베이스 학습--DCL(데이터베이스 제어 언어)
4097 단어 MySQL
기본적으로 슈퍼 관리자만 데이터베이스를 조작할 수 있습니다
액세스 제어 권한
mysql는 복잡한 접근 제어와 권한 시스템을 실현하여 허용합니다
명령줄 링크 방법
mysql-u 사용자 이름 - p 비밀번호 - h 서버 IP 주소 - P 서버 쪽 mysql 포트 - D 데이터 u 이름
클라이언트가 서버에 연결될 때 mysql 접근 제어 두 단계
1. 링크 2.확인
기본 테이블
mysql을 만들 때
사용자 테이블: 계정과 권한 열 포함
db표: 그 사용자는 그 데이터베이스에 접근할 수 있습니다
table_priv 및 columnspriv 테이블: 테이블 레벨과 열 레벨을 포함합니다
procs_priv: 저장 함수와 저장 프로세스를 포함하는 표
계정을 만들려면 다음과 같이 하십시오.
create user 사용자 이름 (형식: username @ 도메인 이름 접근) identified by 비밀번호 [명문, 문자열이어야 함]
사용자 이름:
username@%
username@%.alibaba.com alibaba.com
@, %
와일드카드 (%) 및 (-)
백분호나 - 아무 부위나 수정할 수 있다는 뜻이에요.
사용자 삭제
drop username@ 도메인 이름 액세스
drop username@ 액세스 도메인, username1@ 액세스 도메인, username2@ 액세스 도메인
delete from user where user=username
사용자 권한 보기
show grants for username@ 도메인 이름 액세스
,(.) ,
사용 권한 설정
grant 권한 1, 권한 2 [all: 모두] on 라이브러리.테이블/라이브러리/테이블 to user [identified by 비밀번호 [명문, 문자열이어야 함] [require 데이터 링크 방식] [with [grant option | resource option](일반적으로 쓰기)
grant all on (*. *) to username@ 도메인 이름 액세스 with grant option;
지정 권한 설정
create user rfc indentified by 암호
grant select,update,delete on alibaba.* to rfc
무권리 오류 실행 1142(42000)
원격 링크 허용
grant all privileges on * . * to ‘root’@’%’ indentfied by ‘mysql’ with grant option; 권한 암호 사용자 이름 설정
권한 새로 고침
flush privileges;
권한을 취소하다
revoke privilege_type [(column_list)],[privilege_type [(column_list)]] on object_type.privilege_level from user,[user1,user2]
예:
revoke select on * . * from user
암호 수정
1. MySQL 로그인
set password for 사용자 이름 @localhost = password (새 암호)
2. MySQL 로그인
update user set password=password('암호')where user='root'and host='localhost'
리셋
3. mysqladmin
mysqladmin -u 사용자 이름 -p 이전 비밀번호password 새 비밀번호
4. 루트 암호를 잊어버리거나 초기화
windows
1. mysql【 】
2. DOS , mysql\bin
3.
8.0 :mysqld --skip-grant-tables 【 】
8.0 :mysqld --console --sjip-grant-tables --shared-memory
4. DOS , mysql\bin
5. mysql , , mysql
6. : use mysql
7.
update user set password=password(' ') where user='root' and host='localhost'
8.
flush privileges;
9.
10. ,
데이터베이스 백업
mysqldump
mysqldump-u 사용자 이름 - p 비밀번호 [-hlocalhost] 데이터베이스 이름 > 출력 파일.sql
데이터베이스 구조만 백업
mysqldump-u 사용자 이름 - p 비밀번호 [-hlocalhost] - no-data 데이터베이스 이름 > 출력 파일.sql
데이터베이스 데이터만 백업
mysqldump-u 사용자 이름 - p 비밀번호 [-hlocalhost] - no-create-info 데이터베이스 이름 > 출력 파일.sql
여러 데이터베이스 내보내기
mysqldump-u 사용자 이름-p 비밀번호 [데이터베이스1, 데이터베이스2]> [출력된 파일1.sql, 출력된 파일2.sql]
모두:
mysqldump - u 사용자 이름 - p 암호 - all-database > [all dbs dump files.sql]
데이터베이스 가져오기
1、
mysql>create database abc;
2、
:
(1)
mysql>use abc;
(2)
mysql>set names utf8;
(3) ( sql )
mysql>source /home/abc/abc.sql;
:
mysql -u -p < .sql
#mysql -uabc_f -p abc < abc.sql
조회
조회 데이터베이스
show databases;
:
drop database sc;
:desc ;
:show tables;
질의 열
show columns from ;
show columns from like ' ';
show columns from like '%e%';
show columns from where Field=" ";
사용자 조회
select user from mysql;
:
select user();
select current_user();
현재 로그인한 사용자 select user, host,db,command from informationschema.processlist;[임시표]
데이터베이스 유지 관리
분석표
analyze table ,【 2,...】;
:
Table: ;
Op:
Msg_type: , / /
Msg_text:
최적화 표
optimize table ;
검사표
check table 테이블 이름;검사만 하고 복구는 상관하지 않다
수정 테이블
복구를 시도해 보십시오. 리페어 테이블 이름을 고칠 수 있는 것은 아닙니다.시계의 복구 여부를 표시합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.