Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara memberikan hak istimewa MySQL hanya untuk baris tertentu

Tidak satu baris pun tetapi tampilan yang berisi satu baris yang pada gilirannya akan memperbarui tabel sebenarnya.

Ini dapat dilakukan melalui tampilan tabel tertentu per siswa (ya itu akan menjadi struktur DB yang berantakan). Berikan akses ke tampilan untuk pengguna ini hanya dengan pilihan/pembaruan saja dan kunci utama tidak dapat diperbarui. Tabel utama akan diperbarui sendiri saat tampilan diperbarui.

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. Perubahan kata sandi root MySQL

  2. MySQL - Mengulang struktur pohon

  3. perbedaan antar tabel

  4. Mengonversi dari mysql ke mysqli (mysql_fetch_array)

  5. Bagaimana cara menggunakan kunci utama yang bertambah otomatis sebagai kunci asing juga?