sql >> Databáze >  >> RDS >> PostgreSQL

Omezte přístup uživatelů PostgreSQL pomocí schématu a pohledů

Chcete-li omezit přístup PostgreSQL ke konkrétním tabulkám a sloupcům, můžete použít schéma a selektivní příkazy GRANT.

Podívejte se na následující pokyny, jak omezit přístup k určitým tabulkám.

Pokud však potřebujete omezit přístup ke konkrétním sloupcům, možná budete muset k omezení přístupu použít kombinaci schémat a zobrazení. Můžete to také udělat, pokud má vaše databáze více než 1000 tabulek a pokoušíte se připojit k Chartio.

  1. Připojte se k databázi PostgreSQL pomocí psql nebo pgadmin. Spuštěním následujícího vrátíte seznam tabulek ve vaší databázi.

    sudo -u postgres psql c název databáze;

  2. Vytvořte schéma specifické pro uživatele Chartio pouze pro čtení a spusťte následující:

    CREATE SCHEMA chartio_read_only; CREATE ROLE chartio_schema_user PŘIHLAŠOVACÍ HESLO ‘zabezpečené_heslo’; GRANT CONNECT ON DATABASE název databáze TO chartio_schema_user; GRANT POUŽÍVÁNÍ NA SCHÉMACH chartio_read_only TO chartio_schema_user;

  3. Podívejte se na databázové vztahy pomocí příkazu d.

    d

    Schéma | Jméno          | Zadejte  | Majitel ———-+————————-+———-+————– veřejnost | Účty      | stůl | postgres veřejnost | Návštěvníci      | stůl | postgres veřejnost | Uživatelé          | stůl | postgres veřejnost | Předplatné | stůl | postgres

  4. Vaše tabulka Účty obsahuje citlivé informace a chcete, aby Chartio mělo přístup pouze ke sloupcům Account_ID a Date__Created ._ Spusťte následující, chcete-li přidat pohled do schématu chartio_read_only a udělit přístup k tomuto zobrazení uživateli chartio_schema_user.

    CREATE VIEW chartio_read_only.”Accounts” AS SELECT Account_ID, Date_Created FROM Accounts; GRANT SELECT ON chartio_read_only.”Accounts” TO chartio_schema_user;

  5. Udělte oprávnění k výběru všech dat z tabulky Návštěvníci.

    CREATE VIEW chartio_read_only.”Visitors” AS SELECT * FROM Visitors; GRANT SELECT ON chartio_read_only.”Visitors” TO chartio_schema_user;

Pokud nyní připojíte chartio_schema_user ke své databázi, bude mít přístup pouze ke dvěma omezeným pohledům, které jste schématu udělili.

Další informace naleznete v dokumentaci PostgreSQL.


  1. Provozování clusteru MariaDB Galera bez nástrojů pro orchestraci kontejnerů:Část první

  2. SQL Server SP - Předat parametr pro seznam polí IN?

  3. Co je tento operátor <=> v MySQL?

  4. Jak číslovat řádky v SQL