在使用Oracle DB一段时间后,我习惯于使用Oracle DB应用程序上下文来实现访问限制。为了简单地把它,在登录过程被称为是把用户的详细信息到Oracle应用程序上下文,像这样:PostgreSQL和/或SQL Server替代Oracle的SYS_CONTEXT
DBMS_SESSION.SET_CONTEXT('context_name', 'user_id', user_id);
然后访问可以通过创建视图是会看在上下文来确定强制执行哪些行能用户可以看到像这样:
CREATE VIEW users_vw AS
SELECT *
FROM users
WHERE user_id = SYS_CONTEXT('context_name', 'user_id');
我现在已经从甲骨文路程,我使用PostgreSQL为个人项目和SQL Server 2000和2008年的工作。任何人都可以告诉我是否有相应的PostgreSQL或SQL Server提供的功能?
不知道了很多关于这个细节,我认为它使用PostgreSQL的用户?在我描述的方法中,应用程序用户与数据库用户是分开的,并使用一个公共数据库用户连接到数据库。所以上下文是数据库知道应用程序用户连接的方式。任何方式感谢您的答案! – Sevas 2009-12-19 21:05:29
啊,所以你真正想要的是会话变量? HTTP://计算器。COM /问题/ 414541 /基于会话的全局变量功能于PostgreSQL相关的存储过程 – 2009-12-19 21:12:34