仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 614|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页设计关于软件权限设置的一点心得体味

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:27:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一个语句分成两个event(实际上不止,其他可以忽略),一个table_mapevent和一个Rows_log_event。Table_mapevent是一样的,主要看Rows_log_event。心得
自己在软件开辟过程当中关于用户权限处置的一点点心得体味,拿出来与人人共享,但愿人人多提可贵定见。

以往年夜多半文章材料设置用户权限都是经由过程ActionList与数据库中的权限表相联完成。我经由理论经由过程控件的Tag属性(每一个控件都有一个保存的Tag属性,默许值为0),也能够完成权限的设置,上面我就详细申明完成办法。

1、将一切必要设置权限的菜单和按钮的Tag属性从1入手下手分派不反复的阿拉伯数字(1,2,3......),这里不必0(控件Tag属性的默许值),暗示此控件不需做权限设置。

2、将一切权限称号加到CheckBoxList中,包含菜单和按钮,其按次必定要与分派阿拉伯数字的按次完整分歧。

3、在数据库中创建操纵员表(包含编号、姓名、权限)权限用一个只包括0和1的字符串暗示。用0暗示有响应的权限(对应的菜单或按钮可用,Enabled=true),用1暗示没有响应的权限(对应的菜单或按钮不成用,Enabled=false)。这个字段要设置充足长(我预留了50位),以备扩大之用。

4、设置权限次要代码以下:

/*qx,用户权限字符串,operator操纵员表,privilege权限字段*/
AnsiStringqx="";
for(i=1;i<=CheckListBox1->Items->Count;i++){
if(CheckListBox1->Checked[i-1]){
qx=qx+"0";
}else{
qx=qx+"1";
}
}
Sql="updateoperatorsetprivilege="+qx+"whereOperator_name="+CboOperatorName->Text+"";
5、设置用户的全局变量,在窗体的FormShow事务中到场权限判别代码以下:

/*体系办理员具有一切权限*/
if(FrmDM->GetUserName()!="体系办理员"){
AnsiStringqx;
/*还没有设置权限*/
if(strPrivilege.Length()==0){
for(intj=0;j<=Parent->ComponentCount-1;j++){
if(Parent->Components[j]->Tag!=0){
if(Parent->Components[j]->ClassNameIs("TMenuItem")){
((TMenuItem*)Parent->Components[j])->Enabled=false;
}else{
((TButton*)Parent->Components[j])->Enabled=false;
}
}
}
}else{
for(i=1;i<=strPrivilege.Length();i++){/*已设置权限*/
qx=strPrivilege.SubString(i,1);
if(qx=="1"){
for(j=0;j<=Parent->ComponentCount-1;j++){
if(Parent->Components[j]->Tag==i){
if(Parent->Components[j]->ClassNameIs("TMenuItem")){
((TMenuItem*)Parent->Components[j])->Enabled=false;
}else{
((TButton*)Parent->Components[j])->Enabled=false;
break;
}
}
}
}
}
}
以上是我在软件开辟过程当中关于用户权限设置的一点点心得体味,但愿可以举一反三。

mysql的原来开发者又开发了MariaDB,MariaDB适合用来替代mysql吗
谁可相欹 该用户已被删除
沙发
发表于 2015-1-19 13:00:56 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
再见西城 该用户已被删除
板凳
发表于 2015-1-27 05:32:20 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-5 02:37:56 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
透明 该用户已被删除
5#
发表于 2015-2-11 02:50:00 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
简单生活 该用户已被删除
6#
发表于 2015-3-10 23:07:21 | 只看该作者
一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-17 16:07:58 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-24 10:44:01 | 只看该作者
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-21 15:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表