Mysql
 sql >> база данни >  >> RDS >> Mysql

как да дадете привилегии на MySQL само на определен ред

Не нито един ред но изглед, който съдържа един ред, който от своя страна ще актуализира действителната реална таблица.

Това може да стане чрез специфичен изглед на таблица за ученик (да, това ще бъде объркана структура на 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', '[email protected]');


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 [email protected] IDENTIFIED BY 'user_password';

UPDATE example.student_1 SET email='[email protected]'; // note no primary key needed or allowed



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql JOIN на четири таблици с две ключови таблици

  2. Docker с mysql:Грешката означава, че mysqld няма права за достъп до директорията

  3. Как да стартирам SQL скрипт в MySQL?

  4. Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:Да) след нулиране на паролата LINUX

  5. MySQL 8.0.11 грешка при свързване към caching_sha2_password посоченият модул не може да бъде намерен