SQL Server的安全机制
以前用Oracle用的比较多,现在用Sql server的时候,发现一个问题,在这里写出来和大家探讨一下。
在Oracle中,一个数据库内包括了用户和角色,因此每个数据库都是相互独立的。但是,在sql server中则有所不同,sqlserver引入了login概念,login是针对Sql server服务而言,而不针对数据库,如下图:
上图显示了在一台服务器上安装多个数据库的情况。(不考虑NT验证方式) 从图上可以看出,在Sql server上部署多个数据库时,可能存在Login冲突的问题,即:不同的应用在建立login的时候,当login名重复的时候,将发生冲突。
当然,在做B/S系统的时候,将不会由用户建立login,不能出现这样的问题。但是在C/S系统中,则必须考虑这种情况。
目前还没有想到好的办法,只能告诉用户:在sqlserver上最好只部署1个数据库。
哪位有更好的法子?