반응형
특정 행에만 MySQL 권한을 부여하는 방법
학생 테이블이 있다고 상상해 보세요.
student(ID, 이름, 시)
사용자 A를 생성하고 id=10인 업데이트 레코드에 대해서만 권한을 부여하고 싶습니다.
CREATE USER A ;
GRANT UPDATE ON student TO A WHERE student.id=10;
이거 해봤는데 안 되네.
단일 행이 아닌 단일 행을 포함하는 뷰가 실제 테이블을 업데이트합니다.
이는 학생당 특정 테이블 뷰를 통해 수행할 수 있습니다(예, DB 구조가 복잡해집니다).이 사용자에 대한 보기 액세스 권한은 항상 선택/업데이트만 허용하며 기본 키는 업데이트할 수 없습니다.보기가 업데이트되면 기본 테이블이 자동으로 업데이트됩니다.
CREATE SCHEMA `example` ;
CREATE TABLE `example`.`student` (
`id` INT NOT NULL,
`name` VARCHAR(45) NULL,
`email` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
INSERT INTO `example`.`student` (`id`, `name`, `email`) VALUES ('1', 'bob', 'bob@bob.com');
USE `example`;
CREATE
OR REPLACE SQL SECURITY DEFINER
VIEW `student_1` AS
SELECT
`student`.`id` AS `id`,
`student`.`name` AS `name`,
`student`.`email` AS `email`
FROM
`student`
WHERE
(`student`.`id` = '1');
CREATE USER 'student_1_user'@'localhost' IDENTIFIED BY 'user_password';
GRANT SELECT,UPDATE ON example.student_1 TO student_1_user@localhost IDENTIFIED BY 'user_password';
UPDATE example.student_1 SET email='newemail@bob.com'; // note no primary key needed or allowed
언급URL : https://stackoverflow.com/questions/60025159/how-to-grant-mysql-privileges-only-to-a-specific-row
반응형
'programing' 카테고리의 다른 글
jQuery의 $.ready()에 상당하는 Vanilla JavaScript - 페이지/DOM이 준비되었을 때 함수를 호출하는 방법 (0) | 2022.09.05 |
---|---|
두 개의 dicts(양쪽에 나타나는 키의 값을 추가하는)를 조합하는 피토닉 방법이 있습니까? (0) | 2022.09.05 |
Java를 사용하여 문자열에서 중복된 공백을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.05 |
사용자 'User'@%'와 'User'@'localhost'가 같지 않습니까? (0) | 2022.09.05 |
원인: org.flywaydb.core.api.Flyway Exception:검증에 실패했습니다.마이그레이션 2에 대한 마이그레이션 체크섬 불일치 (0) | 2022.09.05 |