您好,欢迎来到星星旅游。
搜索
您的当前位置:首页PostgreSQL数据库角色和模式在Web应用中的动态创建和删除

PostgreSQL数据库角色和模式在Web应用中的动态创建和删除

来源:星星旅游
……。’…………………………………………………。 实用第一 智慧密集 PostgreSQL数据库角色和模式在Web应用中的动态创建和删除 夏润松 。肖钟秀 ,夏繁茂s (1.济宁市育才中学,山东济宁272000;2.华北电力大学电气与电子工程学院,河北保定071000; 3.济宁市高级职业学校,山东济宁272100) 摘要:通过在PostgreSQL数据库中动态创建同名的角色和模式,就能使Web应用完成一些特殊的功 能运算。在动态SQL语句中动态创建或删除角色与模式,并在函数中将动态SQL语句进行封装。按照 JSP页面程序、Servelet程序、Java程序、PostgreSQL函数的顺序完成对函数的调用,从而实现在Web 应用中对角色和模式的动态创建与删除。 关键词:PostgreSQL数据库;动态SQL;动态创建;动态删除 一般Web应用程序在连接数据库开发方面,往往 通过以上步骤即可创建一个对数据库对象有访问权 是基于静态的SQL语句。即连接数据库的角色名和密 码是先前已经创建好的。然后在此基础上进行连接。数 据库的操作往往是在静态SQL语句中以表为对象进行。 而忽略了模式和角色的动态应用。 PostgreSQL多年来一直被作为一个功能比较强大的 限又具有创建角色能力的角色。 1.2 PostgreSQL模式特点 PostgreSQL数据库创建初期即创建了一个Public模 式(Schema)。模式的创建是为了方便对数据库中的对 象,尤其是表进行管理而准备的。可以将某一特性的一 组表放于一个模式中,而具有另一特性的一组表格放于 另外一个模式中。模式可以私有,又可以共享,就看应 开源数据库.在支持多种编程语言编写函数或存储过程 方面超过了MySQL数据库。将PostgreSQL作为Web应 用的后台数据库,进行角色和模式的动态创建和删除, 使之共享public模式的表格与函数,就能使登录角色相 互间隔离,同时又能完成多种强大的功能运算[1]。 用者将模式的权限授予哪些角色,及其授予什么权限。 2 PostgreSQL数据库角色和模式的动态创建 要实现数据库角色和模式的动态创建就必须使用 动态SQL语句,而不能使用静态SQL语句。动态SQL 语句不仅是指SQL语句是动态拼接而成的,更主要的 是SQL语句所使用的对象也是在运行时期才创建的。 把数据库角色和模式的名称作为参数从网页中传人 1 PostgreSQL数据库的角色和模式特点 1。1 PostgreSQL数据库角色的特点 Postgres是数据库建立时创建的一个默认超级用户, 然后由它再创建其他的超级用户或登录用户。为了安全 起见.Web应用中一般不用超级用户作为数据库连接的 用户。要创建在Web应用中登录的用户可以创建一个 普通用户。然后为这个用户在不同级别的database对象 SQL语句中,使之能根据传人的参数动态地创建数据 库的角色和模式『3]。开发时首先在PostgreSQL数据库中 创建函数,将动态SQL语句封装进去。Web程序直接 上授予相应的权限。PostgreSQL数据库角色和别的数据 库不同的地方是:一个database的所有者仅对自己在本 调用创建好的PostgreSQL函数,在函数内部再调用动 态SQL语句即可完成数据库角色和模式的创建。将动 库中创建的对象拥有控制权,对其他角色在本库中所创 建对象却没有访问权限。然而矛盾的情况是,database 所有者却又有权删掉整个的databasem。因而为保险起 见。授权是按以下步骤顺次进行的: 态SQL语句封装到PostgreSQL函数中,具有如下优点: 1)提高了程序的安全性 2)增强了程序的运行效率,并减少了网络流量。 (1)授予用户为一个database的所有者。 (2)授予用户创建角色的权限。 (3)授予用户对database的特定表的权限。 (4)授予用户对database中函数的权限。 作者简介:夏润松(2001一),男,学生在读;肖钟秀 (1997一),女,学生在读,研究方向:电气工程及其自动 化;夏繁茂(1972一),通讯作者,男,讲师。 收稿日期:2017—03—19 敷据库与信息管理 L 卟T^B^sE&INFOR啊盯IONMANAGE… 这些f1I其他数 阼rIl的仃储过程类似 ………………………… …… ’…’…… w 【】氍序州 共 ,从 又使得通过修改I uh¨c 模式的l』、J容【n 达到控 制或修改其他模式的作用。具体f 数的洲J_lJ,q按以_卜步 骤进{il I: 厢 数时,耍注意 序以具 创建角包干¨模式权限的JtJ 户登录数据库才r r以 存I t)stgl・eSQ! 数据库巾创建的n 有动念创建功能的 数代码 卜: CREATE FUNCTION createrole(rote1 va rchar(1 00), pwd VARCHAR(50)) RETURNS VOID AS¥¥ declare sqlstring VARCHAR(200);一一声明保存sql语 一一句的字符串变量 BEGlN 一一定义动态SQL语句,完成DDL语句的创建,创建带 一一密码的角色。 sqlstring::‘CREATE ROLE‘JIrolel LOGIN PASSWORD ’IIpwdll” : EXECUTE sqlstring;一一执行动态sqI语句,以下同 一一定义动态SQL语句,创建DDL语句,用来创 一一建模式,将其赋值给sqlstring变量 sqlstring:=‘CREATE SCHEMA‘IIrolel AUTHO— RIZATION postgres’: EXECUTE sqlstring; 一一定义动态SQL语句,创建DCL语句,把模式的权 一一限全部授予超级用户postgres sqlstring:=‘GRANT ALL ON SCHEMA‘IIrolel TO postgres’: EXECUTE sqlstring; 一一定义动态SQL语句,创建DCL语句,把所创建模 一一式的权限授予刚创建的角色 sqlstring:=‘GRANT ALL ON SCHEMA‘lIrolel TO‘lIrolel: EXECUTE sqlstring; 一一定义动态SQL语句,把public模式下的表的权限全 一一部授权给刚创建的角色 sqlstring:=‘GRANT ALL ON ALL TABLES IN SCHEMA public TO‘JIrolel: EXECUTE sqlstring; END; ¥¥LANGUAGE plpgsql; 陔 数巾创建J ff】色卞¨‘j之同 的模式 .r()1 c、】址 传入的参数,J1j以动态创建模式f1l角色,3HI J“ 符 弓‘与SQ! 语,1J连接起米 创建模式及『『j包时,要 意 创建的前后顺序, 先创建们色后创建模式 这样就 使得 同角包之间做此隔Jf:,成为一个私密的 I'HJ, 但小同角包(川f )问义x,J lmblic模 巾的 lf1】 数  II『 序—— Se,vlet ——啼 n例 _■ l slgt I 散 3 Pc)stgreSQL数据库角色和模式的动态删除 喽埘PostgreSQl 数据库角色和模式删除,必须使 Web 序以具有删除角色和模式权l5}{的角色登求数 , 才能执行删除角色干¨模式的操作,而以被删除的角色 求到数据库则不可以 、 为角色没法删除自 删除时 意删除的前后顺序, 先删除模式,后删除角色, 反J 就不会成功 删除时要注意模式1人J部不 彳r』 他对象,应足空的,否则删除将不成功,斛决的方法足 删除语句的后而加上选项“CASCADE” 6-Postgt-eSQ1 数 ・I1创建的具有动态删除功能的函数代码fH1下: CREATE FUNCTION droprole(rolel varchar) RETURNS VOID AS¥¥ declare sqlstring VARCHAR(200); BEGIN 一一定义动态SQL语句,完成DDL语句的定义,用来删 一一除模式,将其赋值给sqlstring变量 Sqlstring:=‘drop schema‘IIrolel II’cascade’: EXECUTE sqlstring; 一一定义动态SQL语句,完成DCL语句的创建,用来收 一一回角色对public模式中所有表的权限,并将其赋值给 一一sqlstring变量 sqlstring:=‘REVOKE ALL ON ALL TABLES lN SCHEMA public TO‘IIrolel EXECUTE sqlstring; 一一定义动态SQL语句,完成DDL语句的创建,删除 一一角色。 sqlstring:=‘drop role‘I]role1 EXECUTE sqlstring; END; ¥¥L。ANGUAGE plpgsql; l 体 数捌J}j的步骤和I:述创建时的步骤类似 参考文献 I I j Simmon Riggs,etc.F'oslgreSQL 9 Administral Jon Cook— hook『M1.黄 ,等,译.2版.北京:电子T、 …版社.2016. (下转第75页) i -_藿2技0巧17与.1摹2护\、57 L ——一~——… …… ——— 。,... . . … lMAGEPROCESSING&MULTIMEDIATACHNOLOGY…….………… ……… btnPrev.0nReIease=functi0n(){ mychap--; …….… -- 一 的汉 拼肯 子川:gl"认次命名。 as帧继续JJI1入: va r charSound=new Sound(); 2.4 1, 的 释处添JJIl如下脚本: charSound.attachSound(“gl”+random(2),true); charSound.start(); //通过数组增加实现下一章节 冬前一个章节内容传递给动态文本框 txtlnput.text=a[chap]; ∥同时清空已经产生的计数等临时数据 correctChar=O; 2.4 J㈨1 ,/泼 charSound.start(); 该输入的字符”处 入: } ∥清空声音变量 charSound.stop(); charSound.attachSo Jnd(char,true); 以t 程序实 的效粜 :录入正确的字符并按连续 求人的数 祟』Jl1发…【I 确、很好或加油的鼓励声, 输 入错误时.发… 陔输入的lF确字符 2.7练习选择 3结语 通过Flash ActionScript创建 备英史录入功能的游 戏 部分功能还町以通过以F力‘法进行增加:通过隐去 ll:确输入的字符并增加动态效果实现吸引录入者的注意 力,通过将错误录入字符红色 ,J 增加多媒体的表现效 ,功能描述:按照缘 的IE确率统汁,能够正确选择 相应的章 进行过 训练 增加基本键位练 、混合键化练爿以及大小写和数 斛决 法:动态史小 、 字混合练习等实现不同难度的输入。最后在游戏程序在 导入已经设汁好的美术 片下,做 高级软件才具有的 规范化软件游戏. .参考文献 体实观:创建按 btttChapBa ̄・k并存脚本层阿帧 继续添加脚小: btnChapBack。OnRe}ease=functiOn(){ mychap++; …罗湘南,胡 亚.摹丁Flash的仿真实验课件交瓦 奇下过擎 竺窭 ■ 个章节内容复制到动态文本框 一功能设计『JJ.中同科技信息.2006,(13):258一 … … 。。 一 3 ’ txtlnput.text:a[chap】: ∥商时清空已经产生的计数等临时数据 c。rrectChar=O: ∥清空声音变量 charSound.stop(); } [21冯素梅・基于(:}}的打 测试软件研究与开发…・ 现代汁算机(专、 版),2008, (11):39-41 罗湘南,哑.基于Flasl・的仿真实验课件交互 功能没 一 259. .rI1同科技信息,2006,(13)258一 理,创建“ 后翻按钮btt l’, 练爿”按钮1)tnI—ast,具体实现同 141申小春,等.Fla h课件制作一t 声 的控制[J1.中 ,小学电教2005,(11):57—58. (上接第72页) 能给网络管 带术力‘便 j然虚拟化技术的安全也足网 络管 巾需要承点炎 的^U题。 参考文献 平台IJJ.价值 I 程,2014,(34.) 江楠.浅谈服务器虚拟化卡发心技术lJ】.数字技术 与应用,20l4,(1 1). I3l耿睿,徐烨.服务器虚拟化 高校教学中的应用研 f11何 华.瑟r、’Mwm 的数字化校同服务器虚拟化 — — —究IJ】.信息技术与信息化,2015,(10). — .— — —址.— L— .—址 .址 .址..址 —址.—址 . .址 儿—址.. —址 .址 — 上-. — .— L 址— — . 止 止 止4 — j止—址— —9上-— .#L.址— —址.. .址. (上接第57页) f21 Regina Ot ,I )ltsu.PostgreSQI 即学即刚 Ira]・ 清华大学 版社.2叭2. 软件开发技术联盟.Java weh仆发实例大全(提高 丁奇鹏,泽.北 :人 邮电 版社.2016. 【31丁』 锋.()I’ h l IISQ1 从入fJ到精通【M】. 北京: 卷)lM].北京:清华大学}十1版社,2016. ; -_藿2致0 17习.1l2,,. :i'75/ 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务