RBAC(역할 기반 액세스 제어) 역할 기반 액세스 제어입니다.
1. 기본 아이디어: 사용자와 접근 권한 간의 역할 개념을 도입하고, 사용자와 역할을 연결하며, 역할 인증을 통해 시스템에 대한 사용자의 접근을 제어합니다. 리소스 액세스에 있어 역할을 도입하면 기존 액세스 제어에 비해 권한 관리가 크게 단순화됩니다. (추천 학습:##yii Framework)#🎜🎜 ## 🎜🎜#1) 문자: 권한 및 권한의 집합으로 이해될 수 있습니다. 예를 들어 포럼 시스템에서는 "최고 관리자"와 "운영자"가 역할입니다.
2) 권한: 중재자는 포럼의 게시물을 관리하고 포럼의 사용자를 관리하는 등의 권한을 갖습니다.Yii2에서 rbac 구현
1.Yii2는 일반적인 계층형 RBAC를 구현하며, 따르는 모델도 NIST RBAC 모델입니다. .
2. yii2에 규칙이라는 개념이 추가되었습니다. 예: 기사 시스템의 경우 관리자와 일반 사용자가 있어 관리자가 기사에 대한 모든 작업을 수행할 수 있지만 일반 사용자만 기사를 만들고 자신이 만든 기사를 수정할 수 있습니다. 즉, 일반 사용자는 기사를 수정할 권한이 있지만 Extra의 제한 사항은 자신의 기사만 수정할 수 있다는 것입니다. Extra의 이러한 확인은 규칙에 따라 이루어집니다.3.yii2의 권한 관리 구현은 파일과 db라는 두 가지 캐리어를 지원합니다. db 기반 구현의 핵심은
입니다. 1) 역할 또는 권한을 저장하는 테이블: auth_item (유형: 1은 역할, 2는 권한을 의미)
CREATE TABLE `auth_item` ( `name` varchar(64) NOT NULL, `type` int(11) NOT NULL, `description` text, `rule_name` varchar(64) DEFAULT NULL, `data` text, `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `rule_name` (`rule_name`), KEY `type` (`type`), CONSTRAINT `auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
2) 권한 및 역할의 상하 연관 테이블: auth_item_child#🎜🎜 #
(포함 관계: 역할은 역할을 포함할 수 있고, 역할은 권한을 포함할 수 있으며, 권한은 역할을 포함할 수 있지만 권한은 역할을 포함할 수 없음) CREATE TABLE `auth_item_child` (
`parent` varchar(64) NOT NULL,
`child` varchar(64) NOT NULL,
PRIMARY KEY (`parent`,`child`),
KEY `child` (`child`),
CONSTRAINT `auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `auth_assignment` ( `item_name` varchar(64) NOT NULL, `user_id` varchar(64) NOT NULL, `created_at` int(11) DEFAULT NULL, PRIMARY KEY (`item_name`,`user_id`), CONSTRAINT `auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8
4) 규칙 테이블: auth_rule
CREATE TABLE `auth_rule` ( `name` varchar(64) NOT NULL, `data` text, //存的是一个序列化的实现了yii\rbac\Rule接口的类的一个对象实例 `created_at` int(11) DEFAULT NULL, `updated_at` int(11) DEFAULT NULL, PRIMARY KEY (`name`), KEY `name` (`name`), KEY `created_at` (`created_at`), KEY `updated_at` (`updated_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='权限规则表';
위 내용은 yii2에서 rbac를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!