mysql에서 권한을 높이는 방법

青灯夜游
풀어 주다: 2022-04-12 15:25:31
원래의
5768명이 탐색했습니다.

mysql에서 GRANT 문을 사용하여 사용자에게 권한을 추가할 수 있습니다. 구문은 "GRANT 권한 유형 ON 권한 수준 값 TO 사용자 [IDENTIFIED BY 'password'] [WITH 절];"입니다. 여기서 "user" 매개변수는 다음을 나타냅니다. 사용자 계정이며 형식은 " 'username'@'hostname'"입니다.

mysql에서 권한을 높이는 방법

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

MySQL에서는 GRANT 문을 사용하여 사용자에게 권한을 부여하고 권한을 높일 수 있습니다.

구문 형식은 다음과 같습니다.

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY 'password']
[WITH with_option [with_option]...]
로그인 후 복사

그 중:

  • priv_type 매개변수는 권한 유형을 나타냅니다.

  • columns_list 매개변수는 권한이 적용되는 열을 나타냅니다.

  • database.table은 권한 수준을 지정하는 데 사용됩니다.

  • user 매개변수는 사용자 이름과 호스트 이름으로 구성된 사용자 계정을 나타내며 형식은 "'username'입니다. @'hostname'";

  • IDENTIFIED BY 매개변수는 사용자가 비밀번호를 설정하는 데 사용됩니다.

  • password 매개변수는 사용자의 새 비밀번호입니다.

MySQL에서 부여할 수 있는 권한은 다음과 같습니다.

  • 열 권한은 테이블의 특정 열과 관련됩니다. 예를 들어, UPDATE 문을 사용하여 학생 테이블의 이름 열 값에 대한 권한을 업데이트할 수 있습니다.

  • 테이블 권한은 특정 테이블의 모든 데이터와 관련이 있습니다. 예를 들어 SELECT 문을 사용하여 학생 테이블의 모든 데이터에 대한 권한을 쿼리할 수 있습니다.

  • 데이터베이스 권한은 특정 데이터베이스의 모든 테이블과 관련이 있습니다. 예를 들어 기존 데이터베이스 mytest에 새 테이블을 생성할 수 있습니다.

  • MySQL의 모든 데이터베이스와 관련된 사용자 권한. 예를 들어 기존 데이터베이스를 삭제하거나 새 데이터베이스를 만들 수 있습니다.

따라서 GRANT 문에서 권한 수준을 지정하는 데 사용할 수 있는 값의 형식은 다음과 같습니다.

  • *: 현재 데이터베이스의 모든 테이블을 나타냅니다.

  • *.*: 모든 데이터베이스의 모든 테이블을 나타냅니다.

  • db_name.*: 데이터베이스의 모든 테이블을 나타내고, db_name은 데이터베이스 이름을 지정합니다.

  • db_name.tbl_name: 데이터베이스의 테이블 또는 뷰를 나타내고, db_name은 데이터베이스 이름을 지정하고, tbl_name은 테이블 이름 또는 뷰 이름을 지정합니다.

  • db_name.routine_name: 데이터베이스의 저장 프로시저 또는 함수를 나타내며, routine_name은 저장 프로시저 이름 또는 함수 이름을 지정합니다.

  • TO 절: 존재하지 않는 사용자에게 권한이 부여되면 MySQL은 자동으로 CREATE USER 문을 실행하여 사용자를 생성하지만 해당 사용자에 대한 비밀번호를 설정해야 합니다.

MySQL에서는 GRANT 권한이 있는 사용자만 GRANT 문을 실행할 수 있습니다.

예:

GRANT 문을 사용하여 비밀번호 testPwd를 사용하여 새로운 사용자 testUser를 만듭니다. 사용자 testUser에는 모든 데이터에 대한 쿼리 및 삽입 권한이 있으며 GRANT 권한이 부여됩니다.

mysql> GRANT SELECT,INSERT ON *.*
    -> TO 'testUser'@'localhost'
    -> IDENTIFIED BY 'testPwd'
    -> WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.05 sec)
로그인 후 복사

아래와 같이 SHOW GRANTS 문을 사용하여 testUser 사용자의 권한을 쿼리합니다.

mysql에서 권한을 높이는 방법

확장 지식: 권한 유형 설명

1) 데이터베이스 권한을 부여할 때 값을 다음과 같이 지정할 수 있습니다.

권한 이름 은 사용자 테이블의 필드에 해당합니다. 설명
SELECT Select_priv 은 사용자에게 SELECT 문을 사용하여 특정 데이터베이스의 모든 테이블과 뷰에 액세스할 수 있는 권한을 부여하는 것을 의미합니다.
INSERT Insert_priv 은 INSERT 문을 사용하여 특정 데이터베이스의 모든 테이블에 데이터 행을 추가할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다.
DELETE Delete_priv 은 DELETE 문을 사용하여 특정 데이터베이스의 모든 테이블에서 데이터 행을 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다.
UPDATE Update_priv 은 UPDATE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블의 값을 업데이트할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다.
REFERENCES References_priv 은 사용자에게 특정 데이터베이스의 테이블을 가리키는 외래 키를 생성할 수 있는 권한을 부여하는 것을 의미합니다.
CREATE Create_priv 은 권한 있는 사용자가 CREATE TABLE 문을 사용하여 특정 데이터베이스에 새 테이블을 생성하는 데 사용할 수 있는 권한을 나타냅니다.
ALTER Alter_priv 은 ALTER TABLE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블을 수정할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다.
SHOW VIEW Show_view_priv 은 사용자에게 특정 데이터베이스에 있는 기존 뷰의 뷰 정의를 볼 수 있는 권한을 부여하는 것을 의미합니다.
CREATE ROUTINE Create_routine_priv 은 사용자에게 특정 데이터베이스에 대한 저장 프로시저 및 저장 함수를 생성할 수 있는 권한을 부여하는 것을 의미합니다.
ALTER ROUTINE Alter_routine_priv 은 사용자에게 데이터베이스의 기존 저장 프로시저와 저장 함수를 업데이트하고 삭제할 수 있는 권한을 부여하는 것을 의미합니다.
INDEX Index_priv 은 특정 데이터베이스의 모든 데이터 테이블에 대한 인덱스를 정의하고 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다.
DROP Drop_priv 은 사용자에게 특정 데이터베이스의 모든 테이블과 뷰를 삭제할 수 있는 권한을 부여하는 것을 의미합니다.
CREATE TEMPORARY TABLES Create_tmp_table_priv 은 사용자에게 특정 데이터베이스에 임시 테이블을 생성할 수 있는 권한을 부여하는 것을 의미합니다.
CREATE VIEW Create_view_priv 은 사용자에게 특정 데이터베이스에 새 뷰를 생성할 수 있는 권한을 부여하는 것을 의미합니다.
EXECUTE ROUTINE Execute_priv 은 사용자에게 특정 데이터베이스의 저장 프로시저 및 저장 함수를 호출할 수 있는 권한을 부여하는 것을 의미합니다.
LOCK TABLES Lock_tables_priv 은 사용자에게 특정 데이터베이스의 기존 데이터 테이블을 잠글 수 있는 권한을 부여하는 것을 의미합니다.
ALL 또는 ALL PRIVILEGES 또는 SUPER Super_priv 는 위의 모든 권한/슈퍼 권한을 의미합니다.

2) 테이블 권한을 부여할 때

권한 이름SELECTINSERTDELETEDROPUPDATEALTERREFERENCESCREATEINDEXALL 또는 ALL PRIVILEGES 또는 SUPER3) 열 권한 부여 시 은 SELECT, INSERT, UPDATE로만 지정할 수 있으며, 권한 뒤에는 열 이름 목록 열 목록을 추가해야 합니다.
사용자 테이블의 필드에 해당합니다 Description
Select_priv 사용자에게 SELECT 문을 사용하여 특정 테이블에 액세스할 수 있는 권한을 부여합니다
Insert_priv 사용자에게 INSERT 문에 대한 액세스 권한을 부여하여 특정 테이블에 데이터 행을 추가합니다.
Delete_priv 사용자에게 DELETE 문을 사용하여 특정 테이블에서 데이터 행을 삭제할 수 있는 권한을 부여합니다
Drop_priv 사용자에게 데이터 테이블 삭제 권한을 부여합니다
Update_priv 사용자에게 UPDATE 문을 사용하여 특정 데이터 테이블을 업데이트할 수 있는 권한을 부여합니다
Alter_priv 사용자에게 권한을 부여합니다. ALTER TABLE 문을 사용하여 데이터 테이블을 수정하려면
References_priv 사용자에게 특정 데이터 테이블을 참조하기 위한 외래 키를 생성할 수 있는 권한을 부여합니다.
Create_priv 사용자에게 부여합니다. 특정 이름을 사용하여 데이터 테이블을 생성할 수 있는 권한
Index_priv 사용자에게 테이블에 인덱스를 정의할 수 있는 권한을 부여합니다
Super_priv 모든 권한 이름

4) 가장 효율적인 권한은 사용자 권한입니다.

사용자 권한을 부여할 때 데이터베이스 권한을 부여할 때 지정할 수 있는 모든 값 외에도 은 다음 값일 수도 있습니다.

    CREATE USER: 부여된 사용자가 다음을 수행할 수 있음을 나타냅니다. 새로운 사용자 권한을 생성하고 삭제합니다.
  • SHOW DATABASES: 사용자에게 SHOW DATABASES 문을 사용하여 모든 기존 데이터베이스의 정의를 볼 수 있는 권한이 부여되었음을 나타냅니다.
  • 【관련 추천:
mysql 비디오 튜토리얼

위 내용은 mysql에서 권한을 높이는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!