1.不要使用sa用户连接数据库
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select a.name,b.name from sysobjects a,syscolumns b
where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN print @c
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
-----------------------------------------------上面是网上抄的--------------
为了加强数据库的安全,我准备试一下,但中间有不少的麻烦。
我加了一个叫ABC 的public权限数据库用户 第2步完成了,
接着我进入 ----数据库访问---public---权限,开始设置权限 3步 完成了
接着我[用户]用户名称-> 右键-属性-权限- 但发现权限已设置不作深究接着向下。 4步 完成了
通过以下代码检测,好代码也成功提示权限报错。5步 完成了开始以为大功告成,修改程序数据库连接,但事实去不是这样的。程序一运行就提示 存储过程与表权限报错,这时才发现原来还需要对库中用户表与用户存储过程加上权限,也就是凡是自己加的东西都要加上权限。这下傻眼了因为这样库中表过百,存储也是几百,这怎么加啊,如果用手工哪得加多久啊,而且这样加了测试库,正式库上也要加时间上不现实。求助,
1如何用代码方式给这些表与存储过程、触发等加上权限,如存储过程 加上exec 表加上可 select del insert 等权限。
2如何快速复制用户权限到另个SQL中。
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select a.name,b.name from sysobjects a,syscolumns b
where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN print @c
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
-----------------------------------------------上面是网上抄的--------------
为了加强数据库的安全,我准备试一下,但中间有不少的麻烦。
我加了一个叫ABC 的public权限数据库用户 第2步完成了,
接着我进入 ----数据库访问---public---权限,开始设置权限 3步 完成了
接着我[用户]用户名称-> 右键-属性-权限- 但发现权限已设置不作深究接着向下。 4步 完成了
通过以下代码检测,好代码也成功提示权限报错。5步 完成了开始以为大功告成,修改程序数据库连接,但事实去不是这样的。程序一运行就提示 存储过程与表权限报错,这时才发现原来还需要对库中用户表与用户存储过程加上权限,也就是凡是自己加的东西都要加上权限。这下傻眼了因为这样库中表过百,存储也是几百,这怎么加啊,如果用手工哪得加多久啊,而且这样加了测试库,正式库上也要加时间上不现实。求助,
1如何用代码方式给这些表与存储过程、触发等加上权限,如存储过程 加上exec 表加上可 select del insert 等权限。
2如何快速复制用户权限到另个SQL中。
回复请参考一下我以前发的一个帖子,也没很好的解决。
是不是可以写批处理来完成?举例
sqlcmd -i sqlfile.sql -d databasename -s 192.168.1.1
查看用户权限,所有用户表与用户存储过程权限,决定哪些需要授权举例
select * from sysobjects
exec sp_helprotect @username = 'user name'
最后就是授权举例
grant creat table,create procedure ,create view to User1
grant update on students(name,native) to User1
用文本编辑批量处理