因为是一台公用服务器机上装了sql server2008,想做到如何才能让其它用户无法登陆sql server.我现在是这么做的:
装完SQL后将sql server登陆模式改为禁用windows登陆,然后将BUILTINA\dministrators 和Administrator 都禁用。只能用sa登陆。 我知道可以通过注册表将登陆模式修改为混全登陆,但不知道有没有办法在没有sa密码的情况下将我禁用的系统帐户启用?如果可以的话话那我做的这两步就没有作用了。请教高手如何才能实现只能让有密码的用户登陆sql server
装完SQL后将sql server登陆模式改为禁用windows登陆,然后将BUILTINA\dministrators 和Administrator 都禁用。只能用sa登陆。 我知道可以通过注册表将登陆模式修改为混全登陆,但不知道有没有办法在没有sa密码的情况下将我禁用的系统帐户启用?如果可以的话话那我做的这两步就没有作用了。请教高手如何才能实现只能让有密码的用户登陆sql server
忘记说了,tde我也是启用了的。但如果能恢复windows方式验证登陆就可以关闭tde了。
我指的删除windows账户是指在sql server里禁用这些账户:
“装完SQL后将sql server登陆模式改为禁用windows登陆,然后将BUILTINA\dministrators 和Administrator 都禁用”期待高手来指点。
例如,SQL Server 服务帐户为 system,
那么只以 administrator 帐户登陆 windows 系统,在命令行中执行
psexec.exe -s -d -i sqlcmd.exe,便可以了。还有,将 windows 帐户加入 SQLServerMSSQLUser$NAME$MSSQLSERVER 组,也可以。
非常感谢猫兄的回答,我按你说的两个方法反复试过了,都无法进入。我使用的环境是:sqlserver 2008 + windows 2003 server .请问你试了是可以的吗?
你还是在数据库层面上多考虑一下吧,比如用证书非对称密钥等
不知道 lz 是怎么做的。我在多台服务器上测试过都可以。SQL Server 安装在 windows 系统上,只有对 windows 系统有完全控制的权限,基本上就可以完全控制 SQL Server。
回复Harmony_liu,billpu 我已经启用了tde,但似乎只能保证数据库里的数据不能被其它机器回复。如果别人可以登陆到数据库的话那还是可以修改数据啊。 也许只能将数据库的各个表的内容加密存放,但这么做似乎对效率又有大的影响 。而且程序还要做很大的修改。
我想实现的功能就是不能修改、不能将我的数据导出。启用了tde似乎可以做到第二步了。第一步怎么保证 ?我的想法是不是只能让用户无法登陆才可以实现?期待猫兄等高手继续指点一二。
不妨一试
1 停掉所有sqlserver及相关服务
2 设置sqlserver启动参数设置单用户启动,服务里加上-m的参数,或者找到sqlserver安装目录,直接在sqlsevr.exe -m
3 启动另一个cmd窗口(如果刚才你是用命令行方式启动),运行sqlcmd –E
4 运行
create login [builtin\administrators] from windows
go
exec sp_addsrvrolemember [builtin\administrators], [sysadmin]
go
shutdown
go
5 重启sqlserver
然后别人就可以登录了
没有关系,将服务帐户改为 NT AUTHORITY\NETWORK SERVICE,
用 psexec -i -e -u "NT AUTHORITY\NETWORK SERVICE" sqlcmd 一样 ok。