>  기사  >  데이터 베이스  >  MySQL 학습에서의 권한 관리에 대한 자세한 설명

MySQL 학습에서의 권한 관리에 대한 자세한 설명

迷茫
迷茫원래의
2017-03-26 13:24:281532검색

데이터베이스 권한의 의미:

데이터베이스에 있는 비즈니스 데이터가 승인되지 않은 사용자에 의해 불법적으로 도난당하는 것을 방지하기 위해 데이터베이스 방문자에게 다양한 제한이 적용되어야 하며 데이터베이스 보안보안 통제 조치에는 크게 세 가지가 있습니다. 첫 번째는 사용자 신원 인증으로, 비밀번호, 자기 카드, 지문 및 기타 기술을 통해 법적 신분을 가진 사람만 들어갈 수 있습니다. 데이터 베이스. 두 번째 유형의 액세스 권한 제어입니다. 역할마다 데이터베이스 객체 에 대한 액세스 권한이 다르며, 이들이 액세스하는 권한은 역할별로 설정되어야 합니다. 세 번째 유형은 데이터베이스 관리를 위한 관리 시스템을 구축하는 것입니다. 시스템은 궁극적으로 사람들의 행동제한하여 데이터가 올바른 방식으로 처리되도록 보장할 수 있습니다. 적절한 시기에 사람들.

mysql사용자 권한 확인은 두 단계로 나누어집니다

1. mysql 서버와의 연결 가능 여부

2. 특정 작업 권한이 있습니다(예: 선택날짜 등)

1. mysql 서버와 링크 설정

방법 mysql 서버는 사용자가 링크를 설정할 수 있는지 확인합니다

1. 호스트가 어디인지 확인합니다

2. 사용자는 누구입니까

3. ord

mysql에 연결하는 방법: C:UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

매개변수 설명: -h: 링크를 설정할 위치

-u: user

  -p: 비밀번호

mysql> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
| root | %         | *CFAFE434FB0E5D64538901E668E1EACD077A54DF |
+------+-----------+-------------------------------------------+

host=localhost는 연결에 기본 호스트를 사용할 수 있음을 의미합니다(C:UsersPC003>mysql -uroot -pjalja, C :UsersPC003>mysql -hlocalhost -uroot -pjalja, C: UsersPC003>mysql -h127.0.0.1 -uroot -pjalja)

host=%는 서버가 다음의 모든 호스트와 링크를 설정할 수 있음을 의미합니다. 이 방법은 환경에서 안전하지 않습니다.

host=192.168.6.224는 서버가 192.168.6.224 호스트 C와만 링크를 설정할 수 있음을 의미합니다. :UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

호스트 수정 방법:

mysql> update user set host='192.168.6.223' where user ='root'

mysql> 권한 새로 고침(수정됨) 데이터는 메모리에 있으며 사용자 권한 관련 작업을 수행할 때마다 새로 고쳐야 합니다.)

비밀번호 변경:

mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;

2. mysql

mysql에는 mysql 라이브러리가 있습니다. 라이브러리 아래의 user 테이블은 사용자가 어떤 라이브러리에 대해 어떤 작업 권한을 가지고 있는지 확인하고, tables_priv 테이블은 확인합니다. 사용자가 해당 테이블에 대해 가지고 있는 운영 권한

사용자 생성 및 승인:

'password'로 식별되는 user@'host'에게 *.*에 대한 [권한 1, 권한 2]를 부여합니다.

공통 권한: all, create, drop, insert, delete, update, select

예: ls 사용자에게 모든 데이터베이스와 모든 테이블에 대한 모든 권한을 부여하고 이 LAN의 모든 호스트에서 로그인할 수 있습니다. 분절.

mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';

이 사용자를 사용하여 로그인: C:UsersPC003>mysql -h192.168.6.223 -uls -p111111;


ls 사용자의 특정 권한 보기:

mysql> select * from  mysql.user where user='ls' \G;
*************************** 1. row ***************************
                  Host: 192.168.6.%
                  User: ls
              Password: *FD571203974BA9AFE270FE62151AE967ECA5E0AA
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: N
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin:
 authentication_string: NULL

권한 복구: ls

mysql> revoke all on *.* from ls@'192.168.6.%';

권한 승인 특정 라이브러리의 :

mysql> blog.*에 대한 모든 권한을 ls@'192.168.6.%'에 부여합니다. ls 사용자에게 블로그 데이터베이스에 대한 모든 권한을 부여합니다.

이렇게 하면 ls 사용자는 user 테이블에 권한이 없습니다. 이때 db 수준 권한 확인이 수행됩니다.

mysql> select * from  mysql.db where user='ls' 
\G;*************************** 1. row ***************************
                 Host: 192.168.6.%
                   Db: blog                 
                   User: ls
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
         Execute_priv: Y
           Event_priv: Y
         Trigger_priv: Y

ls의 모든 권한을 복구합니다. 사용자 및 특정 테이블에 권한 부여: 블로그 라이브러리

mysql> revoke all on *.* from ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> grant insert,update,select,delete on blog.user to ls@'192.168.6.%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

의 사용자 테이블에 대해 ls 사용자 Crud 권한을 부여합니다. 이런 방식으로 ls 사용자는 db 수준의 권한이 없습니다. 시간이 지나면 tables_priv 수준에서 권한 확인이 수행됩니다:

mysql> select * from  mysql.tables_priv where user='ls' 
\G;*************************** 1. row ***************************
       Host: 192.168.6.%
         Db: blog       
         User: ls
 Table_name: user
    Grantor: root@localhost
  Timestamp: 2017-02-09 14:35:38
 Table_priv: Select,Insert,Update,DeleteColumn_priv:1 row in set (0.00 sec)

mysql 권한 제어 프로세스:

참고: MySQL의 권한 확인은 다음과 같이 수행될 수 있습니다. 특정 데이터 열에 대해 정확합니다.

위 내용은 MySQL 학습에서의 권한 관리에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.