MySQL 시리즈 의 6 사용자 및 권한 부여

시리즈 강좌
MySQL 시리즈 의 시작 MySQL 관계 형 데이터베이스 기초 개념
MySQL 시리즈 중 하나 인 MariaDB-server 설치
MySQL 시리즈 의 두 번 째 인 스 턴 스 설정
MySQL 시리즈 의 3 가지 기초 편
MySQL 시리즈 의 4 SQL 문법
MySQL 시리즈 의 다섯 가지 보기,저장 함수,저장 과정,트리거
MySQL 시리즈 7 MySQL 저장 엔진
MySQL 시리즈 8 MySQL 서버 변수
MySQL 시리즈 의 9 my sql 캐 시 및 색인 조회
MySQL 시리즈 의 10 MySQL 사무 격 리 병행 제어 실현
MySQL 시리즈 의 11 로그 기록
MySQL 시리즈 의 12 백업 및 복구
MySQL 시리즈 13 MySQL 복사
MySQL 시리즈 의 14 MySQL 의 높 은 사용 가능 한 구현
MySQL 시리즈 의 15 MySQL 상용 설정 및 성능 압력 테스트
사용자 관리
1.사용자 계 정
사용자 의 계 정 은 사용자 이름과 HOST 두 부분 으로 구성 되 어 있 습 니 다('USERNAME'@'HOST').
HOST 의 표현:
호스트 이름
구체 적 IP 주소
네트워크/마스크
마스크 를 사용 하여'%와'를 표시 할 수 있 습 니 다.192.168%는 이 네트워크 의 모든 호스트 를 나타 낸다.
2、계 정 삭제 증가
주요:데이터베이스 에서 사용자 정 보 를 수정 하여 FLUSH PRIVILEGES 를 실행 해 야 합 니 다.권한 수여 표를 갱신 하여 효력 을 발생 시 킵 니 다.
창설

  MariaDB [mysql]> CREATE USER 'user1'@'192.168.%';
  MariaDB [mysql]> CREATE USER 'user2'@'192.168.%' IDENTIFIED BY 'your_password';
  MariaDB [mysql]> SELECT user,host,password FROM user;
  +-------+-----------+-------------------------------------------+
  | user  | host      | password                                  |
  +-------+-----------+-------------------------------------------+
  | root  | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | root  | centos7   |                                           |
  | root  | 127.0.0.1 |                                           |
  | root  | ::1       |                                           |
  |       | localhost |                                           |
  |       | centos7   |                                           |
  | user1 | 192.168.% |                                           |
  | user2 | 192.168.% | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
  +-------+-----------+-------------------------------------------+
삭제

  MariaDB [mysql]> DROP USER user2@'192.168.%';
  MariaDB [mysql]> SELECT user,host,password FROM user;      
  +-------+-----------+-------------------------------------------+
  | user  | host      | password                                  |
  +-------+-----------+-------------------------------------------+
  | root  | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | root  | centos7   |                                           |
  | root  | 127.0.0.1 |                                           |
  | root  | ::1       |                                           |
  |       | localhost |                                           |
  |       | centos7   |                                           |
  | user1 | 192.168.% |                                           |
  +-------+-----------+-------------------------------------------+
이름 바 꾸 기

  MariaDB [mysql]> RENAME USER user1@'192.168.%' TO testuser@'%';
  MariaDB [mysql]> SELECT user,host,password FROM mysql.user;
  +----------+-----------+-------------------------------------------+
  | user     | host      | password                                  |
  +----------+-----------+-------------------------------------------+
  | root     | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | root     | centos7   |                                           |
  | root     | 127.0.0.1 |                                           |
  | root     | ::1       |                                           |
  |          | localhost |                                           |
  |          | centos7   |                                           |
  | testuser | %         |                                           |
  +----------+-----------+-------------------------------------------+
비밀번호 수정

  MariaDB [mysql]> SET PASSWORD FOR testuser@'%' =PASSWORD('testpass');
  MariaDB [mysql]> SELECT user,host,password FROM mysql.user;          
  +----------+-----------+-------------------------------------------+
  | user     | host      | password                                  |
  +----------+-----------+-------------------------------------------+
  | root     | localhost | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | root     | centos7   |                                           |
  | root     | 127.0.0.1 |                                           |
  | root     | ::1       |                                           |
  |          | localhost |                                           |
  |          | centos7   |                                           |
  | testuser | %         | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |
  +----------+-----------+-------------------------------------------+
다른 비밀번호 변경 방법:

​ UPDATE user SET password=PASSWORD('testpass') WHERE user='testuser';


​ # mysqladmin -uroot -poldpass password 'newpass'

3.관리 계 정 비밀번호 해제
빈 데이터베이스 상태 에서 비밀번호 복구

  # systemctl stop mariadb
  # rm -rf /var/lib/mysql/*  #    
  # systemctl start mariadb
데이터 가 있 는 상태 에서 암 호 를 복구 합 니 다.
  1)/etc/my.cnf 설정 파일 의[mydqld]에 skip-grant-tables 와 skip-networking 파 라미 터 를 추가 합 니 다.
  2)\#systemctl mariadb 재 시작 서비스
  3)mysql 을 실행 하여 데이터베이스 에 로그 인
  4)MariaDB [(none)]> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE user='root' AND host='localhost';  #비밀번호 업데이트
  5)MariaDB [(none)]> FLUSH PRIVILEGES;  #수권 표 새로 고침
  6)설정 파일 을 종료 하고 수정 하 며 skip-grant-tables 와 skip-networking 인 자 를 삭제 하고 서 비 스 를 다시 시작 합 니 다.
mysqld 프로 세 스 를 시작 할 때 다음 옵션 을 사용 할 수도 있 습 니 다.
--skip-grant-tables
​ --skip-networking
2.권한 수여 관리
1.권한 부여
문법:GRANT privtype ON [object_type] priv_level TO user@'%' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
권한 을 부여 할 때 사용자 가 존재 하지 않 으 면 만 듭 니 다.따라서 저 희 는 사용 자 를 따로 만 들 지 않 고 권한 을 부여 하여 완성 합 니 다.
priv_type 권한 부여 형식
- SELECT
- ​INSERT
- ​UPDATE
- ​DELETE
- ​CREATE
- ​DROP
- INDEX
- ALTER
- ​SHOW DATABASES
- ​CREATE TEMPORARY TABLES
- ​LOCK TABLES
- ​CREATE VIEW
- SHOW VIEW
- CREATE USER
-모든 개인 정보 혹은 모든
object_type 권한 부여 대상
- TABLE
- FUNCTION
- PROCEDURE
priv_level 권한 부여 단계
-*또는*.
- db_name.*지정 한 라 이브 러 리 의 모든 표를 표시 합 니 다.
- db_name.tbl_name 지정 라 이브 러 리 의 지정 표
- tbl_현재 라 이브 러 리 표
- db_name.routine_name 은 지정 한 라 이브 러 리 의 함수,저장 과정,트리거 를 표시 합 니 다.
WITH GRANT OPTION
- MAX_QUERIES_PER_HOUR count
- MAX_UPDATES_PER_HOUR count
- MAX_CONNECTIONS_PER_HOUR count
- MAX_USER_CONNECTIONS count

MariaDB [school]> GRANT SELECT(stuid,name) ON TABLE school.students TO admin@'%' IDENTIFIED BY 'admin';  # students  stuid name          admin@'%'  
MariaDB [school]> FLUSH PRIVILEGES;  #     


2.조회 권한 부여

MariaDB [school]> SHOW GRANTS FOR admin@'%'\G  #         
*************************** 1. row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** 2. row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'

[root@working ~]# mysql -uadmin -padmin -h192.168.0.7
MariaDB [(none)]> SHOW GRANTS FOR CURRENT_USER()\G  #       
*************************** 1. row ***************************
Grants for admin@%: GRANT USAGE ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '*4ACFE3202A5FF5CF467898FC58AAB1D615029441'
*************************** 2. row ***************************
Grants for admin@%: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'
3.권한 회수

MariaDB [school]> REVOKE SELECT(stuid) ON school.students FROM admin@'%';  #  admin@'%'   stuid       
총결산
여기 서 MySQL 사용자 와 권한 수여 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 MySQL 사용자 와 권한 수여 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 저 희 를 많이 응원 해 주 십시오!

좋은 웹페이지 즐겨찾기