이 글에서는 mysql 관련 내용을 주로 소개합니다. 역할을 통해 사용자에게 권한을 부여하여 동일한 권한을 가진 사용자를 쉽게 관리할 수 있는지 함께 살펴보겠습니다. 그것이 모두에게 도움이 되기를 바랍니다.
추천 학습: mysql 비디오 튜토리얼
mysql 데이터베이스의 권한을 관리하고 특정 사용자에게 권한을 직접 추가하기만 하면 됩니다. 이 작업에 대한 한 가지 번거로운 점은 사용자가 많을 때 이러한 사용자가 모두 동일한 권한을 가지면 작업이 약간 중복된다는 것입니다. 그런 다음 역할을 통해 사용자에게 권한을 부여할 수 있습니다.
역할을 도입하는 목적은 동일한 권한을 가진 사용자 관리를 용이하게 하기 위한 것입니다. problissive 권한 설정은 데이터 보안을 보장 할 수 있습니다. 이는 중요한 역할을 생성하는 역할을 사용하여 역할을 생성합니다. 구문은 다음과 같습니다. 역할 이름의 명명 규칙은 사용자 이름과 유사합니다. Host_name을 생략하면 기본값은 %입니다. role_name은 생략할 수 없으며 비워둘 수 없습니다.
연습: 이제 관리자 역할을 만들어야 합니다. 다음 코드를 사용할 수 있습니다. CREATE ROLE 'role_name'[@'host_name'] [,'role_name'[@'host_name']]...
역할에 권한 부여
역할 생성 이후 이 역할에는 기본적으로 권한이 없으므로 역할을 승인해야 합니다. 역할 권한 부여를 위한 구문 구조는 다음과 같습니다.
CREATE ROLE 'manager'@'localhost';
예: 관리자 역할에 dbtest1 데이터베이스 아래의 모든 테이블을 볼 수 있는 권한 부여
역할을 생성하는 한 시스템은 자동으로 "USAGE" 권한을 부여합니다. 이는 로그인 데이터베이스에 연결할 수 있는 권한을 의미합니다.
역할 권한 재활용
역할 권한을 수정하면 해당 역할을 소유한 계정의 권한에 영향을 미칩니다.
역할 권한을 취소하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!