假设我有(过简化,非安全)表,看起来像:保护柱/键选择呼叫
CREATE TABLE users (id SERIAL PRIMARY KEY, user VARCHAR(25), _password VARCHAR(25), email VARCHAR(80));
我想对阻止其返回的列_password
添加一个额外的故障安全在SELECT * FROM users
调用中,这在PostgreSQL中是可能的,如果是这样,怎么做?
我试过https://stackoverflow.com/a/7250991/929999的一些版本,但这可能不是我所期待的。但是这让我想到可能会有一个可以创建的约束。我找不到任何人试过这个或之前问过它,所以我有点失落,因为我不是一个数据库专家。
因此,现在我将数据库中的所有结果转储到Python中的自定义字典占位符中,并使用名为.safe_dump()
的函数删除从_<key>
开始的所有密钥。
而且我想我可以创建一个包含敏感关键字的列表一个单独的表,并通过JOIN
或类似匹配那些在每个SELECT
说法,但是这将只是移动的不慎从SELECT
检索敏感关键风险呼吁保持该“JOIN
表”更新。
PostgreSQL中是否有一个标志可以过滤掉尝试访问某个键的块调用,同时仍然允许在WHERE x=y
子句中使用它?
视图或选择规则 –
@ a_horse_with_no_name我想我可以创建一个选择规则与https://dba.stackexchange.com/questions/1957/sql-select-all-columns-except-some结合删除某些密钥? – Torxed
首先,密码不应该作为纯文本存储。 – jira