>  기사  >  데이터 베이스  >  mysql 데이터베이스 역할의 예에 대한 자세한 설명

mysql 데이터베이스 역할의 예에 대한 자세한 설명

WBOY
WBOY앞으로
2022-06-08 17:28:452117검색

이 글에서는 mysql 관련 내용을 주로 소개합니다. 역할을 통해 사용자에게 권한을 부여하여 동일한 권한을 가진 사용자를 쉽게 관리할 수 있는지 함께 살펴보겠습니다. 그것이 모두에게 도움이 되기를 바랍니다.

mysql 데이터베이스 역할의 예에 대한 자세한 설명

추천 학습: mysql 비디오 튜토리얼

mysql 데이터베이스의 권한을 관리하고 특정 사용자에게 권한을 직접 추가하기만 하면 됩니다. 이 작업에 대한 한 가지 번거로운 점은 사용자가 많을 때 이러한 사용자가 모두 동일한 권한을 가지면 작업이 약간 중복된다는 것입니다. 그런 다음 역할을 통해 사용자에게 권한을 부여할 수 있습니다.

역할의 이해

역할을 도입하는 목적은 동일한 권한을 가진 사용자 관리를 용이하게 하기 위한 것입니다. problissive 권한 설정은 데이터 보안을 보장 할 수 있습니다. 이는 중요한 역할을 생성하는 역할을 사용하여 역할을 생성합니다. 구문은 다음과 같습니다. 역할 이름의 명명 규칙은 사용자 이름과 유사합니다. Host_name을 생략하면 기본값은 %입니다. role_name은 생략할 수 없으며 비워둘 수 없습니다.

연습: 이제 관리자 역할을 만들어야 합니다. 다음 코드를 사용할 수 있습니다.

CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...

효과는 아래와 같습니다

역할에 권한 부여

역할 생성 이후 이 역할에는 기본적으로 권한이 없으므로 역할을 승인해야 합니다. 역할 권한 부여를 위한 구문 구조는 다음과 같습니다.

CREATE ROLE 'manager'@'localhost';

예: 관리자 역할에 dbtest1 데이터베이스 아래의 모든 테이블을 볼 수 있는 권한 부여

역할 권한 보기

역할을 생성하는 한 시스템은 자동으로 "USAGE" 권한을 부여합니다. 이는 로그인 데이터베이스에 연결할 수 있는 권한을 의미합니다.

역할 권한 재활용

역할 이후 권한이 부여되면 역할에 권한을 부여할 수 있습니다. 권한을 유지하고, 권한을 추가하거나 취소할 수 있습니다. 역할 권한 부여와 동일한 GRANT 문을 사용하여 권한을 추가합니다. 역할이나 역할 권한을 취소하려면 REVOKE 문을 사용하세요.

역할 권한을 수정하면 해당 역할을 소유한 계정의 권한에 영향을 미칩니다.

역할 권한을 취소하는 SQL 구문은 다음과 같습니다

​​

GRANT privileges ON table_name TO 'role_name'[@'host_name'];

이제 관리자에 삭제 권한을 추가한 후 이 권한을 다시 가져옵니다

역할 삭제

당 비즈니스를 다시 통합해야 할 때 이전에 생성된 역할을 정리하고 더 이상 사용되지 않는 일부 역할을 삭제해야 할 수도 있습니다. 문자 삭제 작업은 매우 간단합니다. 문법 구조만 익히면 됩니다.

REVOKE privileges ON tablename FROM 'rolename';

역할을 삭제하면 사용자는 이 역할을 통해 얻은 모든 권한을 잃게 됩니다.

给用户赋予角色          

角色创建并授权后,要赋给用户并处于 激活状态 才能发挥作用。给用户添加角色可使用GRANT语句,语 法形式如下:          

GRANT role [,role2,...] TO user [,user2,...];

在上述语句中,role代表角色,user代表用户。可将多个角色同时赋予多个用户,用逗号隔开即可。           

例子:创建一个用户叫wang5 然后赋予角色manager,操作如下          

         

用wang5登录并操作

 

赋予wang5角色manager  注意这个是通过root用户实现的

 

然后通过wang5登录查看数据库

此时还是看不到dbtest1,这是怎么回事呢?原来我们需要激活角色

激活角色

方式1:使用set default role 命令激活角色

SET DEFAULT ROLE ALL TO 'kangshifu'@'localhost';

 现在激活manager角色

然后再通过wang5用户登录查看

激活方式2:将activate_all_roles_on_login设置为ON          

 默认情况:

 设置 SET GLOBAL activate_all_roles_on_login=ON;

这条 SQL 语句的意思是,对 所有角色永久激活 。运行这条语句之后,用户才真正拥有了赋予角色的所有 权限。            

那么现在wang5已经被赋予manager角色,我们知道manager角色只是有select的权限。我们做如下操作          

 撤销用户的角色

REVOKE role FROM user;

比如撤销 wang5的manager角色,通过root用户          

         

 再通过wang5登录看效果

推荐学习:mysql视频教程

위 내용은 mysql 데이터베이스 역할의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제