security可以针对用户设置只读权限吗

security可以针对用户设置只读权限吗,第1张

术之多

Security4:授予查看定义,执行SP和只读数据的权限

2022-10-15 原文

SQL Server数据库有完善的权限管理机制,对于存储过程,其权限分为查看定义,执行和修改,查看SP定义的权限是:VIEW DEFINITION ,执行存储过程的权限是:EXECUTE,修改SP的权限是:ALTER,但是该权限也能修改表结构,视图的定义等数据库对象。数据的读取权限是SELECT,这个查看定义是不同的权限。对于一个数据表,如果仅授予VIEW DEFINITION权限,而没有授予SELECT权限,那么用户只能查看数据表的结构(Schema),而无法查看表中存储的数据。

在管理权限时,可以给特定的用户授予“只能读取数据和执行SP,而不能修改数据”的权限,也就是,使特定的用户只能查看数据(只读,SELECT),只能查看定义(VIEW DEFINITION),和执行SP的权限(EXECUTE),这样的权限设置,既能使用户查看到业务数据,又能避免用户私自修改数据。

对于数据的读取权限,SQL Server内置固定数据库角色 db_datareader,把用户添加到该角色中,用户就被授予了对数据库中所有数据(表或视图)的读取权限,就是说,用户可以对数据表或视图执行select命令读取数据;也可以逆向思考,不允许用户修改数据,把用户添加到固定数据库角色 db_denydatawriter 中,这样,用户不能添加,更新和删除任何数据,就是说,不能对任何数据表执行insert,updae和delete命令。这两个数据库角色,相当于以下两个命令:

grant select to [domain\user]

deny update,delete,insert to [domain\user]

权限的分配分为:授予(grant)和拒绝(deny),对于已分配的权限,也可以通过回收(revoke)命令收回,权限管理是个技术活。

一,授予查看定义的权限

查看数据库对象的权限是VIEW DEFINITION,通常数据库对象是指:数据表,视图,存储过程,函数等,被授予VIEW DEFINITION权限之后,用户只能查看定义,而无法从数据表或视图中查看数据,无法执行SP和函数等。

1,授予SQL Server实例级别的查看定义的权限

以下代码用于授予权限VIEW ANY DEFINITION,代码必须在master数据库中执行,使指定的用户能够查看当前SQL Server实例中的所有数据库对象的定义:

use master

go

grant view any definition to [domain\user]

2,授予User,只能查看当前数据库对象的定义的权限

以下代码用于授予VIEW DEFINITION,使指定的用户能够查看指定数据库中的所有对象的定义:

use db_name

go

grant view definition to [domain\user]

3,授予User,只能查看当前数据库的指定数据库对象的定义的权限

以下代码用于授予VIEW DEFINITION,通过on子句,使指定的用户能够查看指定对象的定义:

use db_name

go

grant view definition

on object::schema_name.object_name

to [domain\user]

二,授予执行存储过程的权限

以下代码授予用户执行存储过程的权限,通过on子句指定用户只能执行特定的SP:

use db_name

go

grant execute

on object::schema_name.object_name

to [domain\user]

如果grant execute省略on子句,表示所有的SP,这样,用户可以执行数据库中的所有SP:

use db_name

go

grant execute

to [domain\user]

三,授予用户修改存储过程的权限

修改存储过程的权限是ALTER,但是,ALTER同时也能修改表结构,视图定义等数据库对象,如下代码所示:

GRANT ALTER TO [domain\user]

如果仅授予用户修改SP的权限,那么必须逐个设置,或者把SP创建在独立的schema下,通过授予用户修改schema,达到控制用户只修改SP的目的:

GRANT ALTER

ON SCHEMA::proc_schema

TO [domain\user]

四,授予用户查看SP的定义,执行和修改SP的权限

通过GRANT子句,可以一次性把查看SP的定义,执行和修改SP的权限都授予指定的用户:

GRANT ALTER, EXECUTE, VIEW DEFINITION

ON SCHEMA::[proc_schema]

TO [domain\user]

在GRANT子句中省略ON子句,表示授予用户的权限作用于所有的数据库对象,包括数据表,视图,存储过程,函数等。

五,授予Public用户查看定义的权限

当Login没有映射到相应的User时,该Login被映射到默认的Public,设置给用户查看定义的权限,这样,每个登陆到SQL Server实例的用户,都可以查看定义。

use master

go

grant view any definition to public

use dbn_ame

go

grant view definition to public

六,授予用户查看定义,只读数据和执行SP的权限

存储过程 sp_msforeachdb @command 是微软未公开的存储过程,该存储过程遍历当前的SQL Server实例的所有数据库,在每个数据库中执行相同的命令:

use master

go

create login [domain\user]

from windows

go

grant view any definition

to [domain\user]

go

exec sp_msforeachdb

'

use [?]

if not exists

(

select *

from sys.database_principals

where name=''domain\user''

)

create user [domain\user]

for login [domain\user]

alter role db_datareader

add member [domain\user]

grant execute to [domain\user]

'

go

遍历数据库的功能,也可以使用游标来实现,本文不再赘述。

参考文档:

Run same command on all SQL Server databases without cursors

Granting View Definition Permission to a User or Role in SQL Server

Security4:授予查看定义,执行SP和只读数据的权限的更多相关文章

MySQL能否授予查看存储过程定义权限给用户

在其他RDBMS中,可以将查看某个存储过程(PROCEDURE)定义的权限给某个用户,例如在SQL Server中,可以单独将查看ProcedureName定义的权限授予UserA GRANT VIE ...

查看ORACLE执行计划的几种常用方法

SQL的执行计划实际代表了目标SQL在Oracle数据库内部的具体执行步骤,作为调优,只有知道了优化器选择的执行计划是否为当前情形下最优的执行计划,才能够知道下一步往什么方向. 执行计划的定义:执行目 ...

查看Job执行的历史记录

SQL Server将Job的信息存放在msdb中,Schema是dbo,表名以“sysjob”开头. 一,基础表 1, 查看Job和Step,Step_ID 是从1 开始的. select j.jo ...

查看Oracle执行计划

1.PL/SQL解释计划窗口 优点:方面 缺点:看到信息有限 2.explain_plan for 针对某个句子优化较方便 3.sqlplus Sqlplus里输入命令: set autotrace ...

如何查看MySQL执行计划

在介绍怎么查看MySQL执行计划前,我们先来看个后面会提到的名词解释: 覆盖索引: MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件 包含所有满足查询需要的数据的索引 ...

查看SQL执行计划

一用户进入某界面慢得要死,查看SQL执行计划如下(具体SQL语句就不完全公布了,截断的如下): call count cpuelapsed disk ...

MSSQL优化之——查看语句执行情况

MSSQL优化之——查看语句执行情况 在写SQL语句时,必须知道语句的执行情况才能对此作出优化.了解SQL语句的执行情况是每个写程序的人必不可少缺的能力.下面是对查询语句执行情况的方法介绍. 一.设置 ...

查看Oracle执行计划的几种方法

查看Oracle执行计划的几种方法 一.通过PL/SQL Dev工具 1.直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果.其中,Cos ...

查看Mysql执行计划

使用navicat查看mysql执行计划: 打开profile分析工具: 查看是否生效:show variable like ‘%profil%’查看进程:show processlist选择 ...

随机推荐

从零自学Java-1.编写第一个Java程序

编写第一个Java程序 完成工作:1.在文本编辑器中输入一个Java程序. 2.使用括号组织程序. 3.保存.编译和运行程序. package com.Jsample//将程序的包名称命名为com. ...

JSP 过滤器

JSP教程 - JSP过滤器 JSP过滤器是可用于拦截来自客户端的请求或处理来自服务器的响应的Java类. 过滤器可用于执行验证,加密,日志记录,审核. 我们可以将过滤器映射到应用程序部署描述符文件w ...

ASP.NET动态引用样式表(css)和脚本(js)文件

// 引入js文件 HtmlGenericControl scriptControl = new HtmlGenericControl("script")scriptContr ...

mySQL 约束 (Constraints)

约束用于限制加入表的数据的类型: 1.创建表时规定约束(通过 CREATE TABLE 语句) 2.表创建之后也可以(通过 ALTER TABLE 语句). 约束类型: NOT NULL(非空) UN ...

直播内容不合规怎么办?智能AI为您解决审核难题

背景 近些年来,视频直播快速发展,大量的直播平台如雨后春笋一般出现,但是这同样给直播内容的监管带来了巨大的挑战,一方面国家对于直播内容监管的要求日益严格,另一方面相对于文字内容的审核,多媒体内容的审核 ...

selenium - pycharm三种案例运行模式

1.unittest 运行单个用例 (1)将鼠标放到对应的用例,右键运行即可 2.unittest运行整个脚本案例 将鼠标放到if __name__ == "__main__": ...

dns服务器测试工具

下载地址:https://www.eatm.app/wp-content/uploads/2018/08/eDnsTest.20180810.zip

ArcGIS API for JS4.7加载FeatureLayer,点击d出信息并高亮显示

我加载的是ArcGIS Server本地发布的FeatureService,ArcGIS API for JS4.7记载FeatureLayer时,在二维需要通过代码启用WebGL渲染,在三维模式下, ...

[2018-12-15] Hello World!

这个blog以后就用来发oi相关的算法与数据结构了 还可能想学习一点web前端的知识和一些与计算机有关的软件和技术 可能有空大概会试试搭建blog以及一些各种软件和c++以外的玩意

理解RHEL上安装oracle的配置参数 :/etc/security/limits.conf, /etc/profile, /etc/pam.d/login

无论安装什么版本的Oracle,在安装之前,都需要配置 /etc/pam.d/login /etc/profile /etc/security/limits.conf这三个文件 那这三个文件究 ...

热门专题

VUE如何设置登陆超时和未登录跳到登录界面COOKIE SERVER2016 集成 SHELL FOR I 2个变量 数据库用户账号密码加密校验 安卓PTRACE HOOK框架 OPENCV 显示图片内存泄漏 VB.NET HTTP接口 静态参数@AUTOWIRED注入不进去 QT5 UTF-8转GBK TCL语言 如何定义三维数组 PHP 二维码转 四维 DELPHI CS构架 客户端卡 UBUNTU如何挂在EXFAT格式 AJAX连接C语言程序 使用JENKINS常见报错汇总 POSTGRESQL判断视图是否存在,存在便删除 MASK RCNN 论文 VS无法查看脚本被哪些预制体引用吗 TCP IP通讯数据传输 WPF DATAGRID教程

Home

Powered By WordPress

小波变换不同于傅里叶变换,根据小波母函数的不同,小波变换的结果也不尽相同。现实中到底选择使用哪一种小波的标准一般有以下几点:

小波函数 Ψ ( t )、 Ψ (ω)、尺度函数 φ ( t )和 φ (ω)的支撑区间,是当时间或频率趋向于无穷大时, Ψ ( t )、 Ψ (ω)、 φ ( t )和 φ (ω)从一个有限值收敛到0的长度。支撑长度越长,一般需要耗费更多的计算时间,且产生更多高幅值的小波系数。大部分应用选择支撑长度为5~9之间的小波,因为支撑长度太长会产生边界问题,支撑长度太短消失矩太低,不利于信号能量的集中。

这里常常见到“紧支撑”的概念,通俗来讲,对于函数 f ( x ),如果自变量 x 在0附近的取值范围内, f ( x )能取到值;而在此之外, f ( x )取值为0,那么这个函数 f ( x )就是紧支撑函数,而这个0附近的取值范围就叫做紧支撑集。总结为一句话就是“除在一个很小的区域外,函数为零,即函数有速降性”。

具有对称性的小波,在图像处理中可以很有效地避免相位畸变,因为该小波对应的滤波器具有线性相位的特点。

在实际中,对基本小波往往不仅要求满足容许条件,对还要施加所谓的消失矩(Vanishing Moments)条件,使尽量多的小波系数为零或者产生尽量少的非零小波系数,这样有利于数据压缩和消除噪声。消失矩越大,就使更多的小波系数为零。但在一般情况下,消失矩越高,支撑长度也越长。所以在支撑长度和消失矩上,我们必须要折衷处理。

小波的消失矩的定义为,若

其中,Ψ(t)为基本小波,0<=p<N。则称小波函数具有N阶消失矩。从上式还可以得出,同任意n-1阶多项式正交。在频域内表示就是 Ψ (ω)在ω=0处有高阶零点(一阶零点就是容许条件)。

在量化或者舍入小波系数时,为了减小重构误差对人眼的影响,我们必须尽量增大小波的光滑性或者连续可微性。因为人眼对“不规则”(irregular)误差比“平滑”误差更加敏感。换句话说,我们需要强加“正则性”(regularity)条件。也就是说正则性好的小波,能在信号或图像的重构中获得较好的平滑效果,减小量化或舍入误差的视觉影响。但在一般情况下,正则性好,支撑长度就长,计算时间也就越大。因此正则性和支撑长度上,我们也要有所权衡。

消失矩和正则性之间有很大关系,对很多重要的小波(比如,样条小波,Daubechies小波等)来说,随着消失矩的增加,小波的正则性变大,但是,并不能说随着小波消失矩的增加,小波的正则性一定增加,有的反而变小。

选择和信号波形相似的小波,这对于压缩和消噪是有参考价值的。

以下列出的15种小波基是Matlab中支持的15种。

Haar,一般音译为“哈尔”。

Haar函数是小波分析中最早用到的一个具有紧支撑的正交小波函数,也是最简单的一个小波函数,它是支撑域在t∈[0,1]范围内的单个矩形波。

Haar小波在时域上是不连续的,所以作为基本小波性能不是特别好。

Daubechies,一般音译为“多贝西”。

Daubechies小波是由世界著明的小波分析学者Ingrid Daubechies(一般音译为英格丽·多贝西)构造的小波函数,我们一般简写成dbN,N是小波的阶数。小波函数Ψ(t)和尺度函数φ(t)中的支撑区为2N-1,Ψ(t)的消失矩为N。dbN小波具有较好的正则性,即该小波作为稀疏基所引入的光滑误差不容易被察觉,使得信号重构过程比较光滑。dbN小波的特点是随着阶次(序列N)的增大消失矩阶数越大,其中消失矩越高光滑性就越好,频域的局部化能力就越强,频带的划分效果越好,但是会使时域紧支撑性减弱,同时计算量大大增加,实时性变差。另外,除N=1外,dbN小波不具有对称性(即非线性相位),即在对信号进行分析和重构时会产生一定的相位失真。dbN没有明确的表达式(除了N=1外,N=1时即为Haar小波)

Symlet小波函数是IngridDaubechies提出的近似对称的小波函数,它是对db函数的一种改进。Symlet小波系通常表示为symN (N=2,3,…,8)。symN小波的支撑范围为2N-1,消失矩为N,同时也具备较好的正则性。该小波与dbN小波相比,在连续性、支集长度、滤波器长度等方面与dbN小波一致,但symN小波具有更好的对称性,即一定程度上能够减少对信号进行分析和重构时的相位失真。

根据R.Coifman的要求,Daubechies构造了Coiflet小波,它具有coifN (N=1,2,3,4,5)这一系列。Coiflet的小波函数Ψ(t)的2N阶矩为零,尺度函数φ(t)的2N-1阶矩为零。Ψ(t)和φ(t)的支撑长度为6N-1。Coiflet的Ψ(t)和φ(t)具有比dbN更好的对称性。

为了解决对称性和精确信号重构的不相容性,引入了双正交小波,称为对偶的两个小波分别用于信号的分解和重构。双正交小波解决了线性相位和正交性要求的矛盾。由于它有线性相位特性,所以主要应用在信号与图像的重构中。通常的用法是采用一个函数进行分解,用另外一个小波函娄进行重构。

双正交小波与正交小波的区别在于正交小波满足<Ψj,k ,Ψl,m>=δj,kδl,m,也就是对小波函数的伸缩和平移构成的基函数完全正交,而双正交小波满足的正交性为<Ψj,k ,Ψl,m>=δj,k,也就是对不同尺度伸缩下的小波函数之间有正交性,而同尺度之间通过平移得到的小波函数系之间没有正交性,所以用于分解与重构的小波不是同一个函数,相应的滤波器也不能由同一个小波生成。

该小波虽然不是正交小波,但却是双正交小波,具备正则性,同时也是紧支撑的,其重构支撑范围为2Nr+1,分解支撑范围为2Nd+1。biorNr.Nd小波的主要特征表现在具有线性相位特性。一般来说为了获得线性相位,需要降低对于正交性的局限,为此该双正交小波降低了对于正交性的要求,保留了正交小波的一部分正交性,使小波攻得了线性相位和较短支集的特性。

6、ReverseBior小波

由Biorthogonal而来,因此两者形式很类似。

7、Meyer小波

Meyer小波的小波函数和尺度函数都是在频率域中进行定义的,它不是紧支撑的,但它的收敛速度很快。

8、Dmeyer小波

Dmeyer即离散的Meyer小波,它是Meyer小波基于FIR的近似,用于快速离散小波变换的计算。

9、Gaussian小波

Gaussian小波是高斯密度函数的微分形式,它是一种非正交与非双正交的小波,没有尺度函数。

10、MexicanHat(mexh)小波

Mexican Hat函数为Gauss函数的二阶导数。因数它的形状像墨西哥帽的截面,所以我们称这个函数为墨西哥草帽函数。它在时域和频率都有很好的局部化,但不存在尺度函数,所以此小波函数不具有正交性。

11、Morlet小波

Morlet小波是高斯包络下的单频率正弦函数,没有尺度函数,是非正交分解。

12、ComplexGaussian小波

属于一类复小波,没有尺度函数。

14、ComplexFrequency B-Spline Wavelets (复高斯B样条小波)

样条函数(splinefunction)指一类分段(片)光滑、并且在各段交接处也有一定光滑性的函数,简称样条。

15、ComplexMorlet小波

Morlet小波是一种单频复正弦调制高斯波,也是最常用的复值小波该小波,在时频两域均具有良好的分辨率,将此小波加以改造特别适用于地震资料的分析。

参考: https://blog.csdn.net/heifan2014/article/details/72530858


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12136743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存