데이터베이스 학습--DCL(데이터베이스 제어 언어)

4097 단어 MySQL
DCL
기본적으로 슈퍼 관리자만 데이터베이스를 조작할 수 있습니다
액세스 제어 권한
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 테이블 이름;검사만 하고 복구는 상관하지 않다
수정 테이블
복구를 시도해 보십시오. 리페어 테이블 이름을 고칠 수 있는 것은 아닙니다.시계의 복구 여부를 표시합니다.

좋은 웹페이지 즐겨찾기