mysql 권한: 1. "mysql.user"에 저장되는 서버의 모든 데이터베이스에 적용되는 전역 권한 2. "mysql.db" 및 "mysql에 저장되는 데이터베이스의 모든 대상에 적용되는 데이터베이스 권한" .host"; 3. 테이블의 모든 열에 적용 가능한 테이블 권한; 4. 열 권한 등
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
권한의 특정 분류
1. 글로벌 수준
글로벌 권한은 특정 서버의 모든 데이터베이스에 적용됩니다. 이러한 권한은 mysql.user 테이블에 저장됩니다. GRANT ALL ON *.* 및 REVOKE ALL ON *.*는 전역 권한만 부여하고 취소합니다.
2. 데이터베이스 수준
데이터베이스 권한은 해당 데이터베이스의 모든 대상에 적용됩니다. 이러한 권한은 mysql.db 및 mysql.host 테이블에 저장됩니다. GRANT ALL ON db_name.* 및 REVOKE ALL ON db_name.*은 데이터베이스 권한만 부여하고 취소합니다.
3. 테이블 수준
테이블 권한은 해당 테이블의 모든 열에 적용됩니다. 이러한 권한은 mysql.tables_priv 테이블에 저장됩니다. GRANT ALL ON db_name.tbl_name 및 REVOKE ALL ON db_name.tbl_name은 테이블 권한만 부여하고 취소합니다.
4. 열 수준
열 권한은 특정 테이블의 단일 열에 적용됩니다. 이러한 권한은 mysql.columns_priv 테이블에 저장됩니다. REVOKE를 사용하는 경우 승인된 열과 동일한 열을 지정해야 합니다.
5. 하위 프로그램 수준
CREATE ROUTINE, ALTER ROUTINE, EXECUTE 및 GRANT 권한은 저장된 하위 프로그램에 적용됩니다. 이러한 권한은 전역 수준과 데이터베이스 수준에서 부여될 수 있습니다. 또한 CREATE ROUTINE 외에도 이러한 권한은 하위 프로그램 수준에서 부여되고 mysql.procs_priv 테이블
보충 지식:
1 글로벌 수준 테스트
테스트 계정을 만들고 부여할 수 있습니다. 전역 수준 권한. 아래와 같이
mysql> set global validate_password_policy=0; mysql> grant select,insert on *.* to test@'%' identified by 'test'; mysql> flush privileges;
다음 두 가지 방법을 사용하여 테스트에 부여된 권한을 쿼리합니다. 아래와 같이
mysql> show grants for test; mysql> select * from mysql.user where user='test'G;
2. 데이터베이스 수준 테스트
테스트 계정 테스트를 생성하고 데이터베이스 수준 권한을 부여합니다. 아래와 같이
mysql> drop user test; mysql> grant select,insert,update,delete on jpcpdb.* to test@'%' identified by 'test@123'; mysql> select * from mysql.user where user='test'G; --可以看到无任何授权。 mysql> show grants for test; mysql> select * from mysql.db where user='test'G;
3. 테이블 수준 테스트
테스트 계정 테스트를 생성하고 테이블 수준 권한을 부여합니다. 아래와 같이
mysql> drop user test; mysql> flush privileges; mysql> grant all on jpcpdb.user to test@'%' identified by 'test@123'; mysql> show grants for test; mysql> select * from mysql.tables_privG;
4. 열 수준 테스트
테스트 계정 테스트를 만들고 열 수준 권한을 부여합니다. 아래와 같이
mysql> drop user test; mysql> flush privileges; mysql> grant select (id, name) on jpcpdb.user to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> select * from mysql.columns_priv; mysql> show grants for test;
5. 하위 프로그램 수준 테스트
테스트 계정 테스트를 만들고 하위 프로그램 수준 권한을 부여합니다. 아래와 같이:
mysql> DROP PROCEDURE IF EXISTS PRC_TEST; mysql> DELIMITER // mysql> CREATE PROCEDURE PRC_TEST() -> BEGIN -> SELECT * FROM user; -> END // mysql> DELIMITER ; mysql> grant execute on procedure jpcpdb.PRC_TEST to test@'%' identified by 'test@123'; mysql> flush privileges; mysql> show grants for test;
mysql> select * from mysql.procs_priv where User='test';
Summary
사용자에게 부여된 권한을 확인하려면 다음 5개 항목에서 부여된 권한을 확인해야 합니다. 수준. 각 레벨에 부여된 권한을 위에서 아래로 또는 작은 것부터 위쪽으로 하나씩 확인하세요.
데이터베이스는 기업, 사업부서, 그룹, 개인에 속하는 관련 데이터를 모아 놓은 단위 또는 응용분야의 종합적인 데이터 처리 시스템입니다. 데이터베이스의 데이터는 글로벌 관점에서 구축되며 특정 데이터 모델에 따라 구성, 설명 및 저장됩니다. 그 구조는 필요한 모든 접근 경로를 제공할 수 있는 데이터 간의 자연스러운 연결을 기반으로 하며, 데이터는 더 이상 특정 애플리케이션을 대상으로 하지 않고 전체 조직을 지향하며 전체적인 구조적 특성을 갖습니다.
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql에는 어떤 권한이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!