1开启数据库管理工具SQL Server Managerment Studio,用管理员用户登录数据库管理。2展开数据库实例名下的 安全性--->登录名--->‘新建登录名’用以建立一个新的账户。3 输入用户名、密码,选择其有权限的数据库。
不要给除了public以外的任何服务器角色。针对需要访问的数据库授予需要的权限(在登录属性里的用户映射中设置)。
另外,只能看到特定的数据库无法实现。即使没有权限访问的数据库,在数据库管理工具中也是可以看到数据库名的。
这个要使用批量游标插入
我给你简单改写一下,你参考一下
declare
Type Type_AA Is Table Of table_2aa%Type Index By Binary_Integer;
a_Type_AA Type_AA ;
cursor cur_ALL is select baa from table_1 a,table_2 b where aid=bid;
begin
open cur_ALL;
loop
fetch cur_ALL Bulk Collect Into a_Type_AA limit 1000;
forall i in 1a_Type_AAcount
updae table_1 a set aaa=a_Type_AA(i) where aid in (select cid from table_2 c) and trim(aaa) is null;
commit;
exit when cur_ALL%notfound or cur_ALL%notfound is null;
end loop;
close cur_ALL;
exception
when others then
if cur_ALL%isopen then
close cur_ALL;
end if;
end;
这样每次只会更新1000条,而且是批量插入,没插入1000条更新一次
但是我建议你的sql要优化一下where aid in (select cid from table_2 c)这部分相当影响性能。
你说的是不是当有人 *** 作一张表的时候,该表就不可以被其他人使用了?如果我理解的对的话,那么这项工作是SQL server 服务器DBMS自己解决的,不用你 *** 心了。SQL server这么强大,不会连这最基本的数据库完整性都保证不了的。。。
创建表的时候可以指定每个列的数据类型和长度啊。
对于数值和日期类型,不需要指定长度,因为数值和日期类型所占的字节数是固定的,使用了哪种类型,宽度就自动计算出来了。
而字符串类型是需要指定长度的,char(n)代表定长字符串的宽度,varchar(n),其中的n代表变长字符串的最大长度。
每次插入数据库之间,先查看数据库中的数据的数目,然后做限制。
我猜你的意思不是上面那样的,你应该是避免重复提交吧,
‘这个你在JS端做限制,当用户点击submit时候,要么隐藏submit要么让submit点击失效
或者设置cookie如果存在coolie不允许重复提交,还可以存库检验
以上就是关于sql如何创建用户限制权限全部的内容,包括:sql如何创建用户限制权限、如何限制用户只能访问一个数据库、数据库中怎么限制提交的条数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)