sql >> Database teknologi >  >> RDS >> Mysql

hvordan man kun giver MySQL-privilegier til en bestemt række

Nej ikke en enkelt række men en visning, der indeholder en enkelt række, som til gengæld vil opdatere den faktiske rigtige tabel.

Dette kan gøres via specifik tabelvisning pr. elev (ja det bliver en rodet DB-struktur). Giv kun adgang til visningen for denne bruger ved kun at vælge/opdatere, og den primære nøgle vil ikke kunne opdateres. Hovedtabellen opdaterer sig selv, når visningen opdateres.

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. Sådan hentes data fra en sammenføjet tabel

  2. Sådan får du trigger(erne) knyttet til en visning eller en tabel i PostgreSQL

  3. Skal jeg gemme landenavne i MySQL for hver bruger?

  4. SQL FIFO-forespørgsel med gruppe efter