请教关于外部应用访问SQL Server的权限管理问题
小弟初学SQL Server,想请教大家一个关于外部应用程序访问SQL Server的权限管理 实现的问题。
请问在具体项目实施中,外部应用程序是如何对应用程序 访问数据库进行操作的权限进行管理的,如何实现的?
用基于角色管理,下面两种方式通常用哪种?
1 在数据库内建立 用户表、角色表、权限表、用户-角色表和角色-权限表, 然后外部应用程序通过sa连接数据库,在数据库中查找该用户在应用程序登录中的用户名对应的角色,获取相应权限。
这种方法可行,但是似乎比较麻烦,访问权限完全有应用程序的逻辑实现(这部分代码放在中间件中),而且软件如果有漏洞危害比较严重
2 采用SQL Server2005提供的安全机制,用应用程序角色,为应用程序角色分配架构、对表的相应权限,外部应用程序登陆的时候链接到相应数据库的应用程序角色,采用SQL Server引擎提供的安全机制约束应用程序角色的权限。
小弟初学,对SQL Server的用户权限这块不是很清楚,不知道第二种方法是否可行,是否常用。
综上,请教各位,上面说到的两种方法,是否全都可行? 两种方案有各有哪些优劣? 实际项目,工程应用中大多采用哪种方式?
还望有经验的前辈们不吝赐教多多交流,共同进步!