在我的网络应用查询的某些数据库上设置访问权限的更好方法。我只能想到一个赞成一个赞成一个赞成另一个赞成,所以在作出最终决定之前我需要一些其他的意见。
选项1 - 10个应用,10个数据库,每个应用1个服务帐户(用户无法直接访问) 所有查询请求都通过服务帐户进入数据库。我能想到的是,没有人发送请求的记录,只是SA通过请求访问了数据库。
选项2 - 10个应用程序,10个数据库,用户可以直接访问(无服务帐户)
来自应用程序的所有查询请求都直接转到数据库,并记录每个请求,以确定从哪个应用程序发送请求。通过允许特定应用程序仅访问完成请求/查询所需的db / tables / columns,可以进一步锁定此设置。显而易见的专业是没有匿名请求;所有请求都可以追溯到请求者,而不仅仅是SA。
答案 0 :(得分:0)
如果通过服务帐户,您可以参考应用程序的功能帐户或数据库帐户。这是要走的路。如果您需要记录发出请求的人,您的应用程序应该具有用户身份验证并记录请求。
每个用户的数据库帐户的另一个替代方案是不可扩展的,如果您必须为每个用户提供数据库ID(用户将用于连接),它也会产生安全隐患。
通过在用户和数据库之间建立应用程序,您可以将数据库与外部隔离,并且唯一的访问权限就是应用程序允许的内容。