>  기사  >  데이터 베이스  >  MySQL 학습 권한 관리 그래픽 코드 예시

MySQL 학습 권한 관리 그래픽 코드 예시

黄舟
黄舟원래의
2017-03-04 15:00:121144검색

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

데이터베이스의 비즈니스 데이터가 승인되지 않은 사용자에 의해 불법적으로 도난당하는 것을 방지하기 위해 데이터베이스 방문자에게 다양한 제한을 가해야 합니다. 보안 통제 조치에는 다음 세 가지 유형이 포함됩니다. 첫 번째 유형의 사용자 신원 인증은 비밀번호, 자기 카드, 지문 및 기타 기술을 사용할 수 있으며 법적 신원을 가진 사람만 데이터베이스에 들어갈 수 있습니다. 두 번째 유형의 액세스 권한 제어는 역할마다 데이터베이스에 대한 액세스 권한이 다릅니다. 세 번째 유형은 데이터베이스 관리를 위한 관리 시스템을 구축하는 것입니다. 시스템은 해당 규칙과 규정을 공식화함으로써 적시에 적절한 사람이 적절하게 데이터를 운영하도록 보장할 수 있습니다.

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

1. mysql 서버와 링크를 설정할 수 있는지 여부

2. as: 업데이트 선택 등)

1. mysql 서버와 링크를 설정합니다.

mysql 서버는 사용자가 링크를 설정할 수 있는지 어떻게 확인하나요? 🎜>

1. 출신지 확인

2. 사용자는 누구입니까

mysql 접속 방법: C :UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

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

-u: 사용자

-p: 비밀번호

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

host=localhost는 yes를 의미합니다. 연결에 기본 호스트를 사용합니다(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 테이블이 있는지 확인합니다. 사용자가 존재하면 db 테이블은 사용자가 어떤 라이브러리에 대해 어떤 작업 권한을 가지고 있는지 확인하고 tables_priv 테이블은 사용자가 어떤 테이블을 가지고 있는지 확인합니다.

사용자 생성 및 승인:

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

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

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

mysql> '111111'로 식별된 'ls'@'192.168.6.%'에 *.*에 대한 모든 권한 부여;

이 사용자를 사용하여 로그인: 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> 블로그에 모든 권한 부여* 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 중국어 홈페이지(www.php.cn)를 참고해주세요!


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