PHP 프레임워크 YII yii2에서 rbac를 구현하는 방법

yii2에서 rbac를 구현하는 방법

Dec 30, 2019 am 09:42 AM
yii2

yii2에서 rbac를 구현하는 방법

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
로그인 후 복사

3) 사용자 및 권한 할당 테이블(역할): auth_rule

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

클라우드 네이티브 환경에서 YII를 사용하기위한 모범 사례는 무엇입니까? 클라우드 네이티브 환경에서 YII를 사용하기위한 모범 사례는 무엇입니까? Mar 18, 2025 pm 04:39 PM

이 기사는 컨테이너화, 오케스트레이션 및 보안 조치를 통한 확장 성, 신뢰성 및 효율성에 중점을 둔 클라우드 네이티브 환경에 YII 애플리케이션을 배포하기위한 모범 사례에 대해 설명합니다.

서버리스 아키텍처에서 YII를 사용하기위한 주요 고려 사항은 무엇입니까? 서버리스 아키텍처에서 YII를 사용하기위한 주요 고려 사항은 무엇입니까? Mar 18, 2025 pm 04:33 PM

이 기사는 Serverless Architectures에서 YII를 사용하기위한 주요 고려 사항에 대해 논의하고, 무국적, 콜드 스타트, 기능 크기, 데이터베이스 상호 작용, 보안 및 모니터링에 중점을 둡니다. 또한 최적화 전략과 잠재적 인적 통합을 다룹니다

CodeCeption으로 YII 애플리케이션을 테스트하기위한 가장 좋은 전략은 무엇입니까? CodeCeption으로 YII 애플리케이션을 테스트하기위한 가장 좋은 전략은 무엇입니까? Mar 18, 2025 pm 04:27 PM

이 기사는 CodeCeption을 사용하여 YII 응용 프로그램을 테스트하기위한 전략, 내장 모듈, BDD, 다양한 테스트 유형, 조롱, CI 통합 및 코드 범위에 중점을 둔 전략에 대해 설명합니다.

YII 및 WebSockets와 실시간 데이터 동기화를 구현하는 방법은 무엇입니까? YII 및 WebSockets와 실시간 데이터 동기화를 구현하는 방법은 무엇입니까? Mar 18, 2025 pm 04:34 PM

이 기사는 YII 및 WebSockets를 사용하여 실시간 데이터 동기화 구현, 성능 및 보안을위한 설정, 통합 및 모범 사례를 다루는 것에 대해 설명합니다.

YII의 내장 테스트 프레임 워크의 주요 기능은 무엇입니까? YII의 내장 테스트 프레임 워크의 주요 기능은 무엇입니까? Mar 18, 2025 pm 04:41 PM

YII의 내장 테스트 프레임 워크는 PHPUnit 통합, 고정 장치 관리 및 다양한 테스트 유형 지원과 같은 기능으로 응용 프로그램 테스트를 향상시켜 코드 품질 및 개발 관행을 향상시킵니다.

YII 애플리케이션 성능을 모니터링하고 프로파일 링하는 데 가장 적합한 도구는 무엇입니까? YII 애플리케이션 성능을 모니터링하고 프로파일 링하는 데 가장 적합한 도구는 무엇입니까? Mar 17, 2025 pm 01:52 PM

이 기사는 YII 디버그 도구 모음, Blackfire, New Relic, Xdebug 및 Datadog 및 Dynatrace와 같은 APM 솔루션을 포함하여 YII Debug 도구 모음을 모니터링하고 프로파일 링하는 도구에 대해 설명합니다.

SaaS 애플리케이션 구축에 YII를 사용하면 주요 이점은 무엇입니까? SaaS 애플리케이션 구축에 YII를 사용하면 주요 이점은 무엇입니까? Mar 18, 2025 pm 04:25 PM

이 기사는 SaaS 개발에 대한 YII의 이점, 성능, 보안 및 신속한 개발 기능에 중점을 두어 확장 성을 향상시키고 시장 마켓을 줄입니다.

생산에 YII 애플리케이션을 배포 할 때 주요 고려 사항은 무엇입니까? 생산에 YII 애플리케이션을 배포 할 때 주요 고려 사항은 무엇입니까? Mar 17, 2025 pm 01:58 PM

이 기사는 생산에 YII 애플리케이션을 배포하고 환경 설정, 구성 관리, 성능 최적화, 보안, 로깅, 모니터링, 배포 전략 및 백업/복구 계획에 중점을 둔 주요 고려 사항에 대해 설명합니다.

See all articles