大家好!1我想探讨一下,我的程序要连接sql server 2005数据库服务器,完成对某个数据库中所有表的数据读写操作 我创建了登录名,在进行用户映射的时候,选择哪个数据库角色比较合适??2.创建了登录名后,能完成创建和删除数据库的最安全的角色是哪个???如何设置???希望大家不吝赐教!
解决方案 »
- ADO循环语句怎么转成sql语句
- SQL 2008 R2那个StreamInsight Technology就是内存数据库吧?
- 恶心的笔试题,自认水平还马马虎虎,居然看不懂,大家帮看看,是我水还是这公司水
- SQL2005
- 邹老大,帮帮忙!我的数据库附加提示错误823怎么修复???
- SQLSERVER 存储过程中执行Sql语句?急!!!
- 多级触发器问题
- 如何在Access项目(.adp)中进行SQL Server数据库备份和恢复
- 请教一个sql语句的写法????
- 如何提高存储过程的执行效率!各种方法都可以谈谈!过程体的大小对执行效率的影响大不大?
- nvarchar字段如何与datetime类型数据比较
- sql语句
1.在确定不需要的情况下,删除xp_cmdshell,xp_dirtree,xp_regread,xp_regdeletekey,xp_regdeletevalue,xp_regwrite,sp_oacreate,sp_oadestroy,sp_oagetErrorInfo,sp_oagetProperty,sp_oamethod,sp_oasetProperty,sp_oastop这些存储过程,移走相关的动态连接库文件,在需要的时候复制到原来的位置就可以了。
2.应用程序和网站在与后台的Microsoft SQLServer数据库连接时不要用SA等高权限的用户连接。
3.给SA等高权限的用户起一个健壮的密码。
只是插入和修改数据用"public"吧,打开企业管理器,选择登录名,右键,属性,钩选服务器角色。
serveradmin 可以设置服务器范围的配置选项,关闭服务器。
setupadmin 可以管理链接服务器和启动过程。
securityadmin 可以管理登录和 CREATE DATABASE 权限,还可以读取错误日志和更改密码。
processadmin 可以管理在 SQL Server 中运行的进程。
dbcreator 可以创建、更改和除去数据库。
diskadmin 可以管理磁盘文件。
bulkadmin 可以执行 BULK INSERT 语句。数据库角色
db_owner 在数据库中有全部权限。
db_accessadmin 可以添加或删除用户 ID。
db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格。
db_ddladmin 可以发出 ALL DDL,但不能发出 GRANT、REVOKE 或 DENY 语句。
db_backupoperator 可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。
db_datareader 可以选择数据库内任何用户表中的所有数据。
db_datawriter 可以更改数据库内任何用户表中的所有数据。
db_denydatareader 不能选择数据库内任何用户表中的任何数据。
db_denydatawriter 不能更改数据库内任何用户表中的任何数据。
请大家帮忙解释一下这些服务器和数据库角色, 书本上的中文解释,比较生涩难懂。
示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。
--*/USE pubs--创建角色 r_test
EXEC sp_addrole 'r_test'--授予 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENY SELECT ON titles TO u_test/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select权限--*/--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'--删除登录 l_test
EXEC sp_droplogin 'l_test'--删除角色 r_test
EXEC sp_droprole 'r_test'