sql >> Databáze >  >> RDS >> Mysql

MySQL:Jak zabránit tomu, aby uživatel dokonce viděl, že mám jiné DB, a udělit vybraný přístup k jednomu pohledu na jedné DB?

Našel jsem přehled obsažený v tento článek ještě užitečnější než skutečná dokumentace MySQL pro popis celkového obrazu toho, jak jsou udělována nebo odepírána oprávnění MySQL.

Podstatou článku s přehledem je, že oprávnění jsou řízena řadou stále jemnějších tabulek oprávnění v mysql databáze:mysql.user , mysql.db , mysql.host , mysql.tables_priv , mysql.columns_priv , mysql.procs_priv . Obecným pravidlem je, že hodnota "Y" pro privilegium v ​​jemnozrnnější tabulce převažuje nad hodnotou "N" v jemnější tabulce. Doporučená strategie je tedy začít odepřením většiny oprávnění v user tabulka (která poskytuje nejhrubší kontrolu) a poté proveďte pouze konkrétní přepsání, která chcete v jemnějších tabulkách.

Konkrétně se jedná o privilegium zvané ZOBRAZIT_DATABÁZE který je určen Show_db_priv ve sloupci mysql.user stůl; toto budete chtít nastavit na "N" pro daného uživatele (a jak je popsáno výše, možná budete chtít nastavit i většinu ostatních oprávnění v uživatelské tabulce na "N") a poté udělit pouze ta oprávnění, která uživatel skutečně potřebuje v mysql.db nebo mysql.tables_priv stůl nebo cokoliv, co by bylo vhodné pro váš konkrétní případ.



  1. Používáte Dropwizard &JDBI k dotazování databáze s více schématy?

  2. OperationalError:kurzor _django_curs_<id> neexistuje

  3. mysql kontrola řazení tabulky

  4. Jaká je alternativa klauzule LIMIT v JPQL?