이 글은 주로 MySQL 사용자의 권한 관리 관련 정보를 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.
사용자 권한 관리에는 주로 다음과 같은 기능이 있습니다.
1. 사용자가 접근할 수 있는 라이브러리와 라이브러리는 무엇입니까? ? 테이블
2. 사용자가 SELECT, CREATE, DELETE, DELETE, ALTER 등의 작업을 수행할 수 있는 테이블을 제한할 수 있습니다.
3. 사용자 로그인
의 IP 또는 도메인 이름을 제한할 수 있습니다. 사용자 자신의 권한을 다른 사람에게 부여할 수 있는지 여부 User
1. 사용자 권한
코드는 다음과 같습니다.
mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option;
•모든 권한: 은 사용자에게 모든 권한을 부여한다는 의미입니다. SELECT, CREATE, DROP 등과 같은 특정 권한을 지정할 수도 있습니다.
•on: 은 이러한 권한이 적용되는 데이터베이스 및 테이블을 나타냅니다. 형식: 데이터베이스 테이블 이름, 여기에 "*"를 쓰면 모든 데이터베이스와 모든 테이블을 나타냅니다. 테스트 라이브러리의 사용자 테이블에 적용할 권한을 지정하려면 다음과 같이 작성할 수 있습니다. test.user
•to: 어떤 사용자에게 권한을 부여합니다. 형식: "사용자 이름"@"로그인 IP 또는 도메인 이름". %는 제한이 없으며 모든 호스트에서 로그인할 수 있음을 의미합니다. 예: "yangxin"@"192.168.0.%"는 사용자 yangxin이 192.168.0 IP 범위
에만 로그인할 수 있음을 의미합니다. •식별자: 사용자의 로그인 비밀번호를 지정하세요
•허가 있음 옵션: 사용자가 다른사용자에게 권한을 부여할 수 있음을 나타냅니다.
GRANT를 사용하여 사용자에게 권한을 추가할 수 있으며 이전에 부여된 권한을 덮어쓰지 않습니다. 사용자에게 SELECT 권한을 추가한 다음 나중에 해당 사용자에게 부여합니다. INSERT 권한이 추가되면 사용자는 SELECT 및 INSERT 권한을 모두 갖게 됩니다.
사용자 세부 정보의 권한 목록은 MySQL 공식 웹사이트 지침을 참조하세요: http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
2. 권한 새로 고침
사용자의 권한을 변경한 후에는 권한을 다시 로드하고 메모리의 권한 정보를 데이터베이스에 써야 합니다.
mysql> 플러시 권한;
3. 사용자 권한 보기
코드는 다음과 같습니다.
mysql> grant select,create,drop,update,alter on *.* to 'yangxin'@'localhost' identified by 'yangxin0917' with grant option; mysql> show grants for 'yangxin'@'localhost';
yangxin 사용자의 생성 권한을 삭제합니다. 는 사용자는 데이터베이스 생성
및 테이블을 생성할 수 없습니다.mysql> revoke create on *.* from 'yangxin@localhost'; mysql> flush privileges;5. 사용자 삭제
mysql> select host,user from user; +---------------+---------+ | host | user | +---------------+---------+ | % | root | | % | test3 | | % | yx | | 192.168.0.% | root | | 192.168.0.% | test2 | | 192.168.0.109 | test | | ::1 | yangxin | | localhost | yangxin | +---------------+---------+ 8 rows in set (0.00 sec) mysql> drop user 'yangxin'@'localhost';6. 사용자 이름 바꾸기
shell> 사용자 이름을 'test1'@'%'로 변경하세요.
7.
1> mysql.user 테이블 업데이트
mysql> use mysql;
# mysql5.7之前
mysql> update user set password=password('123456') where user='root';
# mysql5.7之后
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
2> 비밀번호 설정 명령 사용
구문: 'username'@'login address'=password('password ')
mysql> 'root'@'localhost'=password('123456');
3> mysqladmin
구문: mysqladmin -u 사용자 이름 -p 이전 비밀번호 비밀번호 새 비밀번호
mysql> mysqladmin -uroot -p123456 비밀번호 1234abcd
참고: mysqladmin은 mysql
설치디렉터리의 bin 디렉터리에 있습니다. 8. 비밀번호를 잊어버렸습니다
1> 로그인 추가 권한 확인 구성 건너뛰기
my.cnf 수정, mysqld 구성 노드에 Skip-grant-tables 구성 추가
[mysqld]skip-grant-tables
2> service
shell> service mysqld restart
3> 비밀번호 변경
이때 터미널에서 mysql 명령어로 로그인 시에는 사용자 비밀번호가 필요하지 않으며, 이에 따라 비밀번호를 변경하세요. 비밀번호를 변경하는 첫 번째 방법입니다.
4> 로그인 권한 복원 및 구성 확인 건너뛰기
my.cnf에서 mysqld 노드의 Skip-grant-tables 구성을 삭제한 후 서비스를 다시 시작합니다.
위 내용은 MySQL 사용자 권한 관리 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!