本文主要介绍如何建立共享数据库(如何把sql共享函数目录放在d盘上),下面一起看看如何建立共享数据库(如何把sql共享函数目录放在d盘上)相关资讯。
一般来说,有几种情况需要您将数据库设置为只读:1 .插入、更新和删除触发器2。检查约束并删除触发器。3.将数据库设置为只读。4.将表放在只读文件组中。5。拒绝对象级权限6。创建视图在开始之前,以创建数据库和表为例:复制代码如下:创建数据库创建表tblevents (id int,logevent varchar(1000))并插入tblevents值(1, 密码更改),(2,用户丢弃),(3,财务数据更改)nsert/update/delete触发器:请注意,这里使用的不是触发器,因为如果在触发器之后使用,在请求锁时会执行delete、update和insert语句,会影响写事务日志和回滚操作的性能。复制代码代码如下:在tbleevents中创建触发器trreadonly_tblevents而不是insert、update和delete作为raiserror( ;tbleevents表是只读的。 ,16,1)回滚事务结束当用户执行插入/更新/删除时,会提示以下错误:msg 50000,级别16,状态1,程序trreadonly_tblevents,第7行tbleevents表是只读的。味精3609,16 16,1 1。使用check constraints和delete触发器:现在,check constraint 1 = 0被添加到表中,这意味着它总是失败,并且它禁止您对任何行执行insert或delete操作。首先,上一步第一个残疾人创建的触发器在触发后执行:trreadonly_tblevents tblevents并修改表tbleevents,添加约束:添加约束chk _ read _ only _ tbleevent check with nocheck(1 = 0)。您执行任何插入/更新语句吗?会提示以下错误信息:msg 547,level 16,state 0,第1行update语句矛盾,check constraint chk _ read _ only _ tbleivent。数据库中发生了。语句已被终止。但是,此约束不影响删除操作。为此,需要创建一个ddl触发器:复制代码如下:创建触发器trreadonlydel_tblevents作为tbleevents的开头,而不是删除它。raiserror( ;tbleevents表是只读的。,16,1)回滚事务后将数据库设置为只读:可以将数据库设置为只读,这样整个数据库禁止ddl和dml操作。可以使用以下语句:复制代码如下:使用{master}更改数据库mydb} {set read_only和no_wait将表放入只读文件组:可以在只读文件组中创建表:复制代码如下:使用{master}更改数据库mydb} {} {read_only_tbls添加文件组更改数据库mydb} {添加文件(name = n mydb_readonly_tables,文件名= n 空间mydb只读。ndf,大小2048kb =,= =)转到tblevents表创建表tblevents (id int,logevent varchar(1000))。对read _ only _ tbls { change database mydb } { } { read _ only _ tbls修改只读文件组表的任何dml操作都将被拒绝,并返回以下错误消息:msg 652,16日。tbl事件(行集id 72057594038845440)驻留在只读文件组(read_only_tbls)中。拒绝对象级权限可以通过dcl命令来控制,但这一步不能限制高级特权用户(如系统管理员和数据库所有者)。复制代码如下:deny insertion,update and delete,deny insertion,update and delete to check,为tblevent创建一个视图。为了替换直接访问表,可以使用视图:复制如下代码:创建视图vwtblevents作为选择id,并记录来自tbl事件联盟0 ;0 其中1 = 0。在这个视图中,只有当相应的列数得到保证时,才使用union。在本例中,该表有两列,因此使用了两个输出列。同时,您还应该确保数据类型是一致的。当用户试图通过插入/更新/删除操作来操作数据时,他会得到以下错误消息:msg 4406,级别16,状态1,第1行update或insert视图或函数 vwtlevents1 失败,因为它包含导数或恒定磁场,msg 4426,16级,状态1,线1视图 无法更新vwtlevents1,因为其定义包含合并操作。最下一步:确认是否需要使用这些步骤将表设置为只读。如果该表总是只读的,则应该将其放在只读文件组中。
了解更多如何建立共享数据库(如何把sql共享函数目录放在d盘上)相关内容请关注本站点。