postgresql9.6中的 Row Security Policies

2024-01-25 13:38

本文主要是介绍postgresql9.6中的 Row Security Policies,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.。中文VS2008下面编译pg9.6

修改VSObjectFactory.pm 中的 DetermineVisualStudioVersion 直接 return '9.00';


2.。在 ALTER TABLE accounts ENABLE ROW LEVEL SECURITY;时

a )  在函数 ATExecEnableRowSecurity 把pg_class中的 relrowsecurity 置为 true


3。CREATE POLICY account_managers ON accounts TO managers USING (manager = current_user);

对系统表pg_policy增加了一条记录

#define PolicyRelationId 3256

CATALOG(pg_policy,3256)
{
 NameData polname;  /* Policy name. */
 Oid   polrelid;  /* Oid of the relation with policy. */
 char  polcmd;   /* One of ACL_*_CHR, or '*' for all */

#ifdef CATALOG_VARLEN
 Oid   polroles[1]; /* Roles associated with policy, not-NULL */
 pg_node_tree polqual;  /* Policy quals. */
 pg_node_tree polwithcheck; /* WITH CHECK quals. */
#endif
} FormData_pg_policy;


4。使用时,就是在select或是insert时,把rewirte阶段,把polqual 和 polwithcheck 加到后面,之后在执行时进行判断

rewrite调用的函数 get_row_security_policies

执行时调用函数 ExecWithCheckOptions、ExecWithCheckOptions



和MAC的区别

1。没有等级和范围的概念

2。管理员还是可以看到全部数据

3。MAC特权概念不明显

4。Row Security Policies 需要在用户表的设计时加上限制的字段,需要改应用







这篇关于postgresql9.6中的 Row Security Policies的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643437

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

INDEX+SMALL+IF+ROW函数组合使用解…

很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP、INDEX+MATCH中入门的,纵然你把全部的多条件查找方法都学会了而且运用娴熟,如VLOOKUP和&、SUMPRODUCT、LOOKUP(1,0/....,但仍然只能对这种一对多的查询望洋兴叹。   这里讲的INDEX+SMALL+IF+ROW的函数组合,

spring security 中的授权使用

一、认证     身份认证,就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证,但是无论开发者使用那种方式认证,都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。   二、授权     授权,即访问控制,控制谁能访问哪些资源。简单的理解授权就是根据系统提前设置好的规则,给用户分配可以访问某一个资源的

spring security 中的异常

一、简介 Spring Security 中异常主要分为两大类: 1、AuthenticationException: 认证异常 2、AccessDeniedException:  授权异常 AuthenticationEntryPoint 该类用来统一处理  AuthenticationException 异常 AccessDeniedHandler 该类用来统一处理  AccessDe

SQLSERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER

SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER 前言 本文意于用实例数据帮助理解SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER。 准备工作 创建测试表:   ? 1 2 3 4 5 create table test( id int identity(1,1)