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

MySQL:Как да избегна потребител дори да види, че имам други DB и да предоставя избран достъп до един изглед на една DB?

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

Същността на обзорната статия е, че привилегиите се контролират от поредица от все по-фини таблици с разрешения в mysql база данни:mysql.user , mysql.db , mysql.host , mysql.tables_priv , mysql.columns_priv , mysql.procs_priv . Общото правило е, че стойността "Y" за привилегия в таблица с по-дребни зърна има предимство пред стойност "N" в таблица с по-груби гранули. Така че препоръчителната стратегия е да започнете с отказ на повечето привилегии на user таблица (която дава най-грубия контрол) и след това направете само конкретните замени, които искате в по-фините таблици.

По-специално, има привилегия, наречена SHOW_DATABASES което се определя от Show_db_priv колона в mysql.user маса; ще искате да зададете това на „N“ за въпросния потребител (и както е описано по-горе, може да искате да зададете и повечето други разрешения в потребителската таблица на „N“) и след това да предоставите само привилегиите, които потребителят всъщност се нуждае от mysql.db или mysql.tables_priv маса или каквото и да е подходящо за вашия конкретен случай.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP PDO вмъкване на множество (10000+) едни и същи реда с помощта на bindParam. Добра практика?

  2. Android:Изпращане на данни за съхраняване в MySQL

  3. MySQL вмъква нов ред само ако комбинацията от колони (които позволяват дубликати) е уникална

  4. Случаен запис от mysql база данни с CodeIgniter

  5. създаване на база данни на MySQL, как мога да направя заявка, включваща коефициенти