Metadata操作手册

2023-11-02

Metadata操作手册

 

1. Metadata基础知识

1.1.    专业术语(元数据)

1.1.1. 公共仓库数据模型

公共数据仓库模型是一种规范标准,限定了数据仓库、商业智能、知识管理、端口(portal)技术之间交换的元数据的格式。Pentaho元数据模型符合公共数据仓库模型标准,需要更多信息,请参照CWM™ Resource Page

1.1.2. 域(domain)

元数据域是pentaho的一个词,代表了在元数据层创建、存储、使用的业务对象。一个域可以是一个或多个的连接、模型、安全信息,业务视图、目录(categories)、表中的列以及概念(concepts)构成。你可以用pentaho元数据编辑器创建、保存多个pentaho元数据域。

Pentaho BI服务器通过一个metadata.xmi文件访问一个元数据域,这个元数据域文件被放在pentahosolutions 目录下。我们可以在pentaho solution文件夹下建立子文件夹,把metadata.xmi文件导出到这个子文件夹。注意不要改变为其他的文件名,比如test.xmi,否则这个xmi文件即使能在report designer中顺利预览报表,在pentaho server中也是无法成功运行报表的,这是因为pentaho server的某个配置文件限制了只会去寻找metadata.xmi文件,其他名字的文件系统会找不到,导致打开report报错。

1.1.3. 连接(connection)

连接表示了和数据库的连接信息,处在数据库中所有实体表、实体列的最上层。Pentaho元数据模型能够通过jdbc和几乎所有的关系数据库相连。

1.1.4. 实体表(Physical Table)

实体表是一个和数据库表直接映射的表信息对象。

1.1.5. 实体列(Physical Column)

实体列是一个和你的数据库表的列直接映射的列信息对象。

1.1.6. 业务模型(Business Model)

一个业务模型包括所有的逻辑、抽象业务对象和通过一定方式形成的实体数据库对象之间的关系。那种方式保证了实体数据库对象可能的变更对你的业务、业务程序、最终用户影响最小。在一个单个的域中能有多个业务模型。一个业务模型目前只支持一个数据库连接,它由业务表、关系、和一个业务视图构成。

1.1.7. 业务表(Business Table)

业务表是实体表的逻辑表示。这些业务表模型形成的层次把你的应用、用户和数据库的变化隔离开了。这些业务表模仿你的实体表,所以当数据库改变时,你只需要业务层次上的元数据模型,而不用去更改数以百计的那些当初用户依赖数据创建的报表、仪表盘、转换等

1.1.8. 业务列(Business Column)

业务列是实体烈的逻辑表示。更多细节参照业务表。

需要注意的是业务列的“父亲”可以是业务表也可以是业务类。尽管他们的“父亲”不同,他们表示的依然是相同的实体列,但这样做有不同的目的,如果业务列是业务表的孩子,它有点像模仿实体列的角色,起的作用是展示和业务表的关系(比如主键和外键);如果业务列是业务类的孩子,它代表能给用户最终使用的列。

1.1.9. 业务关系(Business Relationship)

业务关系描述两个表之间的关系,这意味着关键键值列在两表之间匹配,如1:1, 1:N, N:N关系,对所有有这种关系的模型表业务关系都需要定义,在选择join方式的时候,系统会自动带出关系类型,经过测试,带出的默认关系是正确的,不需要更改。

1.1.10.      业务类(BusinessCategory)

业务类表示的业务列的逻辑分组,需要注意的是向某个业务类中添加的业务列可以来自多个不同的业务表。即使你可以从一个业务表创建一个业务类(一种常见的例子),但一个业务类和业务表没有任何关系。业务类主要是用来重新组织业务列,使那些让用户觉得独立的,互相联系不紧密的业务列按照某种逻辑进行分组,使得用户使用元数据时更加清晰明了。

1.1.11.      业务视图(Business View)

业务视图是业务类的集合,表示你的模型的视图,主要供最终用户使用。每个模型有且仅有一个业务视图。业务视图是由一组业务类和业务列按照逻辑构成的,这种逻辑是和你的组织结构和终端用户相关的。

 

1.1.12.      属性Property(Properties)

属性表示你将详细描述的元数据的特征。一个属性有一个标识(实际是map的键)和一个值。举个例子,“font”是标识,它的值是“arial”

1.1.13.      概念(Concept)

概念是属性的集合,是你想运用在一个特殊业务对象(比如业务列和业务表)的特征的映射,这个特征可能包含一个到多个属性。

每个业务对象(实体表、业务表、列等等)都有自己的概念,其中的属性可以改变,覆盖其继承的概念或“父概念“中的属性。

根据这个对象和它处的模型层次,一个业务对象可以有一个、或者没有继承概念。更多细节,参阅模型的继承和层次。回顾参阅metadata business modeloverview.

概念也可以是一些业务对象的继承定义,可以通过层次的继承方式,以更好地组织管理你的元数据。除此之外,还有一种独立的“父概念“可以应用到一个或多个业务对象。

1.1.14.      父概念(Parent Concept)

一个父概念是一个独立的定义,是你可以运用到业务对象的可重用的概念。尽管每个业务对象有它自己的属性集合,你仍可以用一个父概念来向业务对象添加一个预先定义的额外的属性集合。如果父概念的属性和业务对象自己概念的属性有交叠,那么业务对象自己概念的属性具有优先级,会覆盖父概念中的属性。设置父概念,请点击tools->concept editor,在设置完父概念之后,只要右击任何一个对象,选择set parent concept,就可以将父对象所设定的属性集合加入这个对象的属性集中了。

1.1.15.      继承概念(InheritedConcept)

继承概念是从相关的业务对象复制派生出的一个业务对象的属性集合。比如,一个业务列和一个实体列相关,那么这个业务列继承实体列的所有概念及属性。概念间的优先级是:对象自己的概念>继承概念或者父概念。更多细节参阅模型层次和继承,回顾参阅metadata model overview.

1.2.    元数据业务模型概述

1.2.1     Introduction

Pentaho元数据编辑器是构建pentaho元数据域和模型的工具。一个pentaho元数据模型是你的数据库实体结构映射的逻辑业务模型。这些映射被集中存储在元数据资源库,允许管理员作如下事情:

对复杂的模糊的数据库表创建业务语言的定义。降低由于底层数据库改变引起的影响和变动。设置安全参数以限制用户报表访问以及数据过滤。对文本、日期、数字等数据格式化以提高报表的稳定性。依据用户的地域性设置把信息本地化。

元数据业务模型是pentaho元数据域中一个主要的组成部分。pentaho域囊括了数据库对象的实体性描述和逻辑模型(业务模型),以及数据库的抽象表示。下面的这些文字的目的是给用户明白的展示一个pentaho域和他包含的各部分组件的关系,进而充分的理解业务模型的作用。

下图详细的阐述了业务对象和pentaho元数据域的关系。

在这幅图中箭头的方向以及业务对象的颜色都是很有意义的。

每一个独立的业务对象有它自己的颜色,这包括pentaho域中主要的业务对象:连接、实体表、业务表、实体列、业务列以及分类。

图中描述的两种关系是理解pentaho元数据的关键。

继承是两个不同的业务对象,其中一个继承另一个的元数据,继承者具有被继承者的元数据。继承关系的一个例子是业务表从相关的实体表继承元数据。

第二种关系是相同对象关系,两个业务对象实际上是相同的只是以一种不同的方式表示或者是一个对象的复用。在抽象业务层的业务列和业务视图中的业务列的关系就是相同对象关系。

1.2.2     The Physical Layer

一个pentaho域的实体层包括连接、实体表和实体列。这些对象代表了你正用元数据建模和细化的数据库。实体层并不被认为是业务模型,因为不是所有在实体层定义的连接都会在每个业务模型中用到。

现在,多个业务对象模型可以在一个pentaho域中被创建,但是这些模型必须有一个且仅有一个相关的连接。这意味着你还不能在一个相同的模型中从两个不同的连接混合或匹配实体表。我们意识到这样会使模型不能支持多数据源,还严格限制了pentaho元数据编辑器允许表改变连接的能力,比如以后要从一个设备转移到产品数据库的需求。幸运的是你可以通过手工编辑对应的xml文件方式摆脱这种困境。记住这些特征对我们很重要,而且一直是实现原数据的目标。

1.2.3     The Abstract Business Layer

抽象业务层在元数据业务模型中是极其重要的。在抽象业务层中,包括业务表、业务列和关系。

你可以为任何你已经在实体层定义的实体表创建业务表,也可以对一个相关的实体表创建多个对应的业务表。这个规则同样适用于业务列。这对于复杂、模糊、安全性要求比较高的数据这样做是非常有用的。

业务表保持了对实体表的一个参照,这样允许他们之间是一种元数据继承关系。

如果实体表定义了一种元数据,那么业务表也就继承了这种元数据,除非业务表的自己定义的元数据覆盖了它。

接着是关系,请不要混淆这个词,这里的关系不是pentaho域中描述的关系,这种关系是业务表的映射关系。一个例子是,顾客和订单表之间是一对多的关系。在抽象业务层确定的表或列的关系,在实体层是不能区分的,这就是元数据关系的作用。可以举个例子,预算、实际销售、和销售数量,用一个有公式的业务列来指定你的业务规则。

1.2.4     The Business View

业务视图是业务模型的一部分,应用程序将对它操作,终端用户也将看见它。业务视图不过是一个“buckets”(叫分类),因为你可以重新排列、组织你的业务列使它对数据的用户更有意义。

在业务视图中,你可以创建任意数量的分类,在这些分类上重新排列你的业务列,但是最好符合你的业务。可以从不同的业务表抽取、混合数据,甚至对不同的分类添加多个业务列。业务视图唯一的限制是不能对同一个分类添加相同的业务列。

1.2.5     Incorporating Metadata

在pentaho域的每一个业务对象都有元数据与它关联。在pentaho术语中,一个元数据属性的集合叫做概念。

每个业务对象有三个层次的概念,它本身(自身或孩子概念),父概念,继承概念。业务对象在所有这三个层次上定义的元数据属性的集合对应用程序和用户都是可以用到的。当在相同的元数据属性上定义多层概念时,理解覆盖是很重要的。

当一个业务对象给自身设置一个元数据属性时,而相同的属性在父概念或者继承概念也有,那么设置的自身属性会覆盖父概念或者继承概念的相应属性。继承概念和父概念之间的优先级对于不同对象结果不同,使用时查看一下对象的属性就能简单地找出规律。

2. Metadata工具使用

2.1.    下载并启动metadata

2.1.1     下载

http://sourceforge.net/projects/pentaho/files/Pentaho%20Metadata

下载metadata edit工具,本文档以“pme-ce-4.8.0-stable”为例讲解,下载后如图所示:

2.1.2     安装

Metadata editor使用需要满足两个条件:

1.       JRE,至少安装1.5版本以上的JRE,并配置bin目录到系统路径。

2.       Pentaho BI Server 可用,BI服务是在元数据发布时使用。

以上两个条件准备完毕后,

将上图压缩包解压后,进入“/pme-ce-4.8.0-stable\metadata-editor” 目录下,windows系统双击“metadata-editor.bat”启动Metadata editor,linux系统双击“metadata-editor.sh”启动。

如图所示:

启动成功后主界面如下图所示:

2.2.创建一个domain

2.2.1    创建一个domain

1.  新建

单击“File”-“New”-“Domain File…”创建domain,如下图所示:

2.  保存

单击“File”-“Save”保存domain,在弹出的对话框中输入domain的名字,如下图所示:

3.  删除

单击“File”-“Delete Domain”在弹出的对话框中选择要删除的domain,如图所示:

如上图所示删除BI_hxecp2,在弹出的是否确认删除的对话框中若确认删除点击“是”,否则点击“否”如下图所示:

 

2.2.2    新建一个数据库连接

新建数据库连接两个方法:

1. 单击“File”-“New”-“Connection…”创建Connection

2.右击Connections图标,点击“New Connection…”

在弹出的databaseconnection的对话框中填好信息并test成功后,点击“OK”,本例以mysql数据库为例子,如下图所示:

在连接的options选项加上编码格式,防止出现中文乱码,如下图所示:

2.2.3    导入实体表和列

导入实体表:

方法一:

1.创建数据库连接后,会自动弹出所连接的库中所有的表,选择所要导入的表,如图所示:

方法二:

2.右击数据库,点击“Import tables…”可导入想导入的实体表,如下图所示:

 

编辑实体表:

右击实体表,点击“Edit”,在弹出的对话框中可以对表进行添加列、删除列、表和列字段属性进行设置,如下图所示:

1.       添加属性

添加表属性,先在“subject”中选中表,然后点击“Available”右边的加号图标,添加想要添加的属性。如图所示:

点击加号后弹出添加属性对话框,以添加“Metadata Security”为例,如图所示:

成功添加后,如下图所示:

 

 

同理,为列添加属性,先选中列,然后同表操作一样。

2.       修改字体

选中所要修改字体的列,选择font属性,点击“change”,在弹出的对话框中修改成自己想要的字体,这里一定要注意,若某个字段值包含中文,一定要修改为中文字体,否则在前台报表展现时会出现乱码,如图所示:

在弹出的下列对话框中修改字体属性:

一般情况下,如果不是对某个字段进行特殊定义字体类型,我们可以用concept edit统一管理公用的配置。设置步骤:

打开TOOLS----点击concept edit,如下图所示:

在弹出的属性框中设置公用的属性,例如我们取一个名为Base的concept,如下图所示:

在实体表和物理表继承Base,如图所示:

继承后的字段属性样式都和Base设置的一致,如果某些字段特殊,那么可以不继承Base。

选中不继承Base的字段,右击选择”clear parent concept”即可。

同样如果再改成继承Base,则选择”set parent concept”即可。

  

 

 

3.       设置聚合类型

选择“DefaultAggregation”,“OptionalAggregations”属性,可以选择要聚合的方式,根据info center,目前该功能对ad-hoc查询无法实现,如下图所示:

Default Aggregation:在报表中添加该字段时默认的聚合方式。

用法:按报表中除聚合字段外的字段进行分组,然后对聚合的字段进行聚合。

Optional Aggregations:在报表中添加该字段时可以选择的聚合方式。如下图所示:

 

4.       添加新列

如果一个列需要在原有列基础之上进行函数转换或者计算等,可添加一个新列,然后用formula进行处理,例如:

dataTime本来是日期类型的,现在需要修改成“YYYY-MM”格式的,则我们可以添加一个新列,比如添加一个列名为date_month的列,然后在“formula”属性对列值进行定义,如下图所示:

聚合或者经过函数处理的字段一定要在实体表上如上图所示新加列,不能在原有的字段上进行formula重写,否则如果所要修改的字段在关系中用该字段作为关联条件,转换的时候会转换错误,如下图所示:

而用新添加的列进行关联就不会出现问题。

Pentaho metadata edit支持的函数及函数写法

Function Name

Parameters

Description

Example

OR

2 or more boolean expression parameters

Returns true if one or more parameters are true

OR( 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars"; 
[BT_CUSTOMERS.BC_CUSTOMERS_CREDITLIMIT] > 1000 
)

AND

2 or more boolean expression parameters

Returns true if all parameters are true

AND( 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars"; 
[BT_CUSTOMERS.BC_CUSTOMERS_CREDITLIMIT] > 1000 
)

LIKE

2 parameters

Compares a column to a regular expression, using "%" as wild cards

LIKE([BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME]; "%SMITH%")

IN

2 or more parameters

Checks to see if the first parameter is in the following list of parameters

IN([BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME]; "Adam Smith"; "Brian Jones")

NOW

none

The current date

NOW() 

DATE

3 numeric parameters, year, month, and day

A specified date

DATE(2008;4;15)

DATEVALUE

1 text parameter "year-month-day"

A specified date

DATEVALUE("2008-04-15")

CASE

2 or more parameters

Evaluates the first, third, etc parameter, and returns the second, fourth, etc parameter value 
if there are an odd number of parameters, the last parameter is returned if no other parameter evaluates to true. 
Note that when using this function, the formula needs to be set on a new column, not on the BT_CUSTOMER.BC_CUSTOMER_CUSTOMERNAME (using the example to the right) 

CASE( 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars"; 
"European Cars"; 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "AsiaCars"; 
"Asian Cars"; 
"Unknown Cars" 
)

COALESCE

1 or more parameters

returns the first non null parameter

COALESCE( 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME]; 
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERID]; 
"Customer is Null" 
)

ISNA

1 parameter

returns true if 1st parameter is null. Otherwise, false.

ISNA([BT_CUSTOMERS.BC_CUSTOMERS_LAST_LOGIN])

 

支持的运算符:

Operator

Description

=

returns true if two expressions are equal

returns true if first expression is larger than the second

returns true if first expression is smaller than the second

>=

returns true if first expression is larger than or equal to the second

<=

returns true if first expression is smaller than or equal to the second

<> 

returns true if two expressions are not equal

+

adds two values

-

subtracts two values

*

multiplies two values

/

divides two values

支持的聚合函数:

Function Name

Description

SUM

sums a specific columns values determined by grouping

COUNT

counts a specific columns values determined by grouping

AVG

averages a specific columns values determined by grouping

MIN

selects the minimum column value determined by grouping

MAX

selects the maximum column value determined by grouping

实体表设置好属性以后,下面的业务表、视图默认继承实体表的属性。

2.2.4    创建业务模型

一个domain可以创建多个业务模型,可以设计成一个报表一个模型,或者多个报表一个模型。

模型中只需要添加需要的表即可。

创建业务模型方法一:

单击“File”-“New”-“Business Model…”创建Business Model,如下图所示:

 

 

方法二:

右击Business图标,点击“New Business Model…”

在弹出的对话框中,选择connection.并设置需要修改的属性。

 

 

2.2.5    创建业务表和列

右击BusinessTables图标,点击“NewBusiness Table…”

 

 

 在弹出的对话框中选择要添加的表,如下图所示:

点“OK”后,业务表和列就创建成功了,如下图所示:

可以重写业务对象的属性,默认继承实体表和实体列的属性。

2.2.6    在业务表之间建立关系

右击Relationships图标,点击“New Relationship…”

 

在弹出的对话框中设置业务表之间的关系,如下图所示:

如果一个表连接另外两个表的结果集,则最上面的关系是最外层的,层次关系的控制通过改动时间控制,即最后编辑的关系为最外层关系。例如下图中最晚时间编辑的DIM_ORG_POSITION_MEMBER和DIM_ORG_PARENT表是最上面的一层关系,DIMENSION_DATE和DIM_ORG_POSITION_MEMBER表是最下面的一层关系,即:DIM_ORG_PARENT连接DIMENSION_DATE和DIM_ORG_POSITION_MEMBER的结果集:

 

 

 

 

 

 

 

如果是多个条件关联,选择ComplexJoin,在complex JoinExpression框中写表达式,格式为:

[BIZ_TABLE_A.BIZ_COL_A]=[BIZ_TABLE_B.BIZ_COL_A];[BIZ_TABLE_A.BIZ_COL_B]=[BIZ_TABLE_B.BIZ_COL_B]

例如:

2.2.7    创建业务视图

右击BusinessView图标,点击“NewCategory…”

 

右击BusinessView图标,点击ManagerCategory,在弹出的对话框中可以对Category进行添加Category、添加列、移动列的位置、删除Category和列等操作。

也可以把左边三个表合为右边一个cagegories,只取前台报表要用到的列。

做完以后可以用queryeditor测试一下是否正确。

点击query editor按钮,如图所示:

在弹出的对话框中设计报表

2.2.8    元数据的安全

Metadata可以控制数据权限。

点击菜单栏中的“Tools”-“Security”

在弹出的对话框中,输入服务器地址、用户名和密码,如下图所示:

点击“test“显示如下图证明连接成功,就可以将pentaho server中的role和user信息读入PME中:

 

 

然后双击某个业务模型,在打开的对话框中设置数据权限,Metadata Security控制用户是否可以访问基于这个元数据所做的报表,注意,在其中必须要添加某个希望可以访问元数据的角色,否则除了admin角色的用户可以访问这个元数据外,其他的用户在打开报表时都会报错。

注意以下两点:

1. 经过测试,Metadata Security是基于role而不是user来控制权限的。如果只设置了user的权限,而没有加入role的权限,那么在服务器中打开报表还是报错。

2. 实体表层可以不配置Metadata Security。在业务模型和业务视图层都必须配置Metadata Security,缺一不可,否则非admin的role就会打不开报表。

 

Metadata Security设置:

点击绿色的加号按钮可以添加一个角色或者用户,点击红色的x号按钮,可以删除选中的角色或者用户,如下图所示:

选择角色

 

Data Constraints是控制行级数据权限的。

Data Constraints设置:

None:允许所有数据通过

Global Constraint:

返回当前角色或者用户,当角色或者用户为预先指定的角色或者用户时,就可以访问所有数据,否则不能访问任何数据。

USER():返回当前用户

ROLES():返回当前角色

例子:IN("test";ROLES()),这表示如果登陆用户的role是test,才可以访问数据,其他role的用户登陆系统后不能看到任何数据。

Roles Based Constrains:

可以限制某个角色所能访问的数据,此处只能限定角色的数据,不能限定用户的数据

格式:business_table.business_column]= value

例如:角色为zy的用户只能访问四川省资阳市的数据,省provincename为四川,城市city为资阳市,写法如下:

点击“OK”后,如下图所示:

注意:如果过滤的数据列值是中文的,那么不能写汉字,需要把汉字转化成ASCII才可以,否则会报错。

Data Constraints只需在model上控制即可。

2.2.9    导入和导出Domains

导入:

点击“File”-“Import from XML File”

在弹出的Warning中,点击“是”

然后打到需要导入的.xml文件即可。

导出:

在弹出的对话框中为Domain选择目录和起名字即可。

2.2.10  发布Domain到BI服务器

点击“File”-“Publish To Server”

 

在对话框中输入相关信息:

 

 

出现以下界面,证明发布成功。

 

 

2.3.在报表中新建Metadata数据源

2.3.1    新建Metadata数据源

 

设置数据源及查询信息:

查询设计器编辑:

报表支持JDBC方式和metadata方式混合型的,即参数可以一部分用JDBC,另一部分用metadata连接方式,或者参数用JDBC,主查询用metadata,这都是允许的。

2.4.常见错误

2.4.1    报表显示乱码

1.有中文时显示乱码,数据库连接已设置成utf8,在查询的时候中文能正常显示,在报表中则显示乱码。原因有可能是:在metadata中没有对有中文的字段进行字体设置,默认是arial,西欧语言,需改成中文GBK。

设置字体:

 

默认的是Arial字体:

 

修改后的字体:

 

 

未改前的报表显示:

改后的报表显示:

2.4.2    Error paring parameterinformation

在PRD中能预览,部署到服务器上则出现“Error paringparameter information”,这种错误有可能是metadata的Security和Data Constraints配置有问题。

2.4.3    聚合函数派生列

如果一个派生列需要聚合,则不仅需要在派生列的aggregations上加上聚合,还要在formule上写上聚合,如图所示:

 

 

需在以上两处设置,得出的结果才对,否则结果不对。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Metadata操作手册 的相关文章

  • 伪造文件系统/虚拟文件系统

    我有一个 Web 服务 用户可以将在服务器上运行的 python 脚本上传到该服务 这些脚本处理服务器上的文件 我希望它们能够仅看到服务器文件系统的特定层次结构 最好 一个临时文件夹 我在其中复制要处理的文件和脚本 该服务器最终将是基于 L
  • asp.net 中的 HTML 标签注入

    我的安全团队报告了以下代码的一个 html 标签注入安全问题 function ClosePopUp objBhID var pageName window location pathname var modalPopupBehavior
  • 处理 PHP 中的会话劫持

    阅读了 Stackoverflow 上有关会话劫持的许多问题 我发现验证用户会话的唯一 解决方案 是检查用户代理 这是一个薄弱的保护层 我什至懒得去检查实施它 所以 我想知道你们实施了哪些解决方案 您是否使用 PHP 的本机会话或者是否有更
  • 油猴安全性如何?

    我从未真正使用过greasemonkey 但我正在考虑使用它 考虑到 GreaseMonkey 允许您让互联网上的随机人改变您喜爱的网站的行为 它的安全性如何 他们可以窃取我的密码吗 看看我的私人数据 做我不想做的事吗 油猴安全性如何 Th
  • 了解 ASP.NET 应用程序文件夹

    ASP NET 中的应用程序文件夹用于存储对运行网站至关重要的各种元素 我想更深入地了解这些文件夹 特别是文件夹的可访问性 根据有关的文章ASP NET 网站布局 http msdn microsoft com en us library
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • SSLContext 初始化

    我正在看JSSE参考指南 我需要获取一个实例SSLContext为了创建一个SSLEngine 所以我可以使用它Netty以启用安全性 获取实例SSLContext I use SSLContext getInstance 我看到该方法被重
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 在没有默认 java.policy 文件的情况下运行 Java 安全管理器

    我不想修改 java 主目录中的任何内容 但是 我担心有时我的默认 java policy 文件可能过于宽松 当我使用以下命令运行 java 时 有没有办法使用指定的策略文件作为唯一的策略文件 Djava security manager
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • Apache Camel 2.14 Rest DSL 安全

    我想使用 Apache Camel 2 14 中新的 Rest DSL 来创建一个 Rest 接口 我想使用 Jetty 组件 并且我有一个如下所示的基本示例设置 Spring安全配置
  • Symfony2 Secure by IP 不起作用

    在我的 Symfony 2 3 1 Security YML 中 我有这一行 安全 yml access control path mysecurearea roles IS AUTHENTICATED ANONYMOUSLY ip 0 0
  • 为什么 RFC 6797 禁止通过纯 HTTP 响应发送 Strict-Transport-Security 标头?

    在阅读 HSTS 严格传输安全 规范时 我看到了一条禁令第 7 2 节 https www rfc editor org rfc rfc6797 section 7 2禁止在通过 http 而不是 https 访问时发送标头 HSTS 主机
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • 如何在 Spring-Security 中重命名表 persist_logins

    Spring Security 中管理 记住我 身份验证的默认表名称是 persistent logins 由于数据库命名约定 我需要重命名该表 持久登录 to T PERSISTENT LOGINS 请提供任何帮助 您需要编写自己的实现J
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu
  • Lisp reader 输入中的关键字有危险吗?

    在 Doug Hoyte 的 Let Over Lambda 的第 102 页上 作者这样描述他的安全读取字符串函数 这意味着向量 位向量 gensym 循环引用 和所有其他的都被淘汰了 安全读取字符串甚至不允许关键字或外国包符号 我绞尽脑
  • 如何指定 JBoss AS7 中的 Web 应用程序使用哪个安全域?

    我正在使用 JBoss AS7 JSF 2 1 我正在尝试使用数据库登录模块对我的 Web 应用程序中特定资源的用户进行身份验证 在standalone xml中有3个安全域 other jboss web policy 和 jboss e
  • 让 PHPmailer 成为 Gmail 的“更安全的应用程序”

    我们可以在 PHPmailer 中实施哪些安全措施 使其成为更安全的 Gmail 应用程序 https support google com accounts answer 6010255 https support google com
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码

随机推荐

  • 微服务容器化实践——微服务引入的问题和解决方案

    文章目录 什么是微服务 微服务的不足 微服务的好处 微服务架构引入的问题及解决方案 单体架构与微服务架构的对比 什么是微服务 使用一套小服务来开发单个应用的方式 每个服务运行在独立的进程里 一般采用轻量级的通讯机制互联 并且它们可以通过自动
  • 数据库:存放变长记录的Page类代码实现

    原文链接 https littlefish33 cn DataBase SimplePage 设计思路 代码实现 Page类的初始化结构 插入记录的一种情况 删除记录 插入记录的另一种情况 排序 总结 设计思路 文章实现的思路大致参考教材D
  • vue项目关闭提交代码时的代码校验(整理)

    赋链接一份 其他博主文章 记录 vue项目关闭提交代码时的代码校验 vue vue项目一般会有一个提交代码时的校验 一般提交需要git commit m no verify 才能跳过校验 不想每次提交都输入 no verify可以进行如下配
  • C++operator()(重载小括号运算符)

    在C 语言中有时候需要重载运算符 今天我们主要介绍它主要应用的场合 仿函数 先考虑一个简单的例子 假设有一个vector 你的任务是统计长度小于5的string的个数 如果使用count if函数的话 你的代码可能长成这样 bool Len
  • CESM2 实验笔记

    文章目录 一 关于重启 运行方式 重启文件 初始文件 1 重新启动 RESTART 1 1 关于重启文件 2 RUN TYPE 初始化运行方式 startup branch hybrid 3 branch 或者 hybrid运行的示例 4
  • SQL注入漏洞(绕过篇)

    在学习完了SQL注入的原理 SQL注入的类型后那么可以说SQL注入已经大致了解了 但事实是现实中开发人员不可能让你这么简单就攻击到数据库 他们一般会对已输入或可输入的数据做一定限制 这篇文章我主要对SQL注入中代码或者waf过滤的绕过做一次
  • 网络安全设备之防火墙技术详解

    一 防火墙概述 1 网络防火墙简介 无论是大中型企业网络 还是小型家庭办公网络 对网络安全方面的要求一直保持上升趋势 微软公司的官方网站尚且难逃黑客的魔爪 普通的中小网络更是难以抵抗了 解决网络安全问题最常用的防护手段就是安装网络防火墙 对
  • 2023最新CISP模拟考试题库及答案(一)

    1 在橙皮书的概念中 信任是存在于以下哪一项中的 A 操作系统 B 网络 C 数据库 D 应用程序系统 答案 A 备注 标准和法规 TCSEC 2 下述攻击手段中不属于DOS攻击的是 A Smurf攻击 B Land攻击 C Teardro
  • 593. Valid Square

    Given the coordinates of four points in 2D space return whether the four points could construct a square The coordinate
  • 【DL】第 4 章 : 什么是神经网络:概述、应用和优势

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • jupyter notebook导入上级目录的文件

    在jupyter中 使用 os path realpath 可以得到当前文件的路径 import sys import os os chdir os path dirname os path realpath sys path insert
  • Keepalived,基于 CentOS 7构建nginx的Keepalived 高可用群集。

    目录 1 简述 Keepalived 的主要功能 应用场合 2 使用 Keepalived 实现双机热备时 主 备服务器的配置存在哪些区别 3 构建 LVS Keepalived 高可用群集时 如何缩短故障中断时间 4 基于 CentOS
  • 电商高利润市场系统分析课:讲解电商赚钱机会,必看课程

    新标题 电商市场系统分析课程 揭秘电商盈利机会 值得推荐的学习资源 文章 引言 100字 电商行业成为了当今最受欢迎的盈利模式之一 但是 如何在电商市场中找到高利润市场 仍是一个颇具挑战的问题 本文将介绍一门关于电商市场系统分析的课程 该课
  • 在 vue3 中构建 SvgIcon 组件

    效果图 1 组件编写 components SvgIcon vue
  • Matlab:日期与时间的格式设置

    Matlab 日期与时间的格式设置 在Matlab中 我们经常需要对日期和时间进行格式设置 例如 在数据可视化和分析中 如果我们想要显示日期和时间的格式为 年 月 日 时 分 秒 就需要对其进行设置 下面 我们将介绍如何在Matlab中进行
  • vscode C语言运行程序无法打印输出中文

    用vscode编译c程序时 遇到中文无法打印输出的情况 解决方法 tasks json中将 fexec charset GBK 修改成 fexec charset UTF 8 即可
  • Centos7 安装MySQL5.7

    Centos7 5 安装MySQL5 7 rpm方式 1 首先删除Centos7自带的mariadb数据库 注意 以下指令要使用root用户执行 使用yum命令卸载 yum remove mysql mysql server mysql l
  • 七夕趣味玩法,用 MMGeneration 生成心仪的 TA

    七夕啦 小情侣们又又又又又要正大光明 撒狗粮 了 在这个特别的日子里 还是 单身喵 的你我他 是不是更对未来的 TA 充满了期待呢 来 AI 来帮你找到心仪的另一半 不信 你看 只需要文字描绘出 你心目中未来的 TA 的样子 就能立马生成一
  • AcWing 417. 不高兴的津津

    题目 津津上初中了 妈妈认为津津应该更加用功学习 所以津津除了上学之外 还要参加妈妈为她报名的各科复习班 另外每周妈妈还会送她去学习朗诵 舞蹈和钢琴 但是津津如果一天上课超过八个小时就会不高兴 而且上得越久就会越不高兴 假设津津不会因为其它
  • Metadata操作手册

    Metadata操作手册 1 Metadata基础知识 1 1 专业术语 元数据 1 1 1 公共仓库数据模型 公共数据仓库模型是一种规范标准 限定了数据仓库 商业智能 知识管理 端口 portal 技术之间交换的元数据的格式 Pentah