- 论坛徽章:
- 0
|
SQL Azure 的安全性有两个部份,一个是管理传输层次安全性的防火墙,一个是管理访问控制的基本安全功能。
编辑本段防火墙
每个 SQL Azure Server 都会有自己的防火墙 (Firewall) 设置,管理人员可以自由设置下列不同的客户端来源模型:
* 只允许云应用程序访问 SQL Azure Server,网段设为 0.0.0.0-0.0.0.0
* 单一或多重网址 (address)。
* 单一或多重网段 (segment)。
SQL Azure Server 的防火墙设置会存储在 SQL Azure Gateway 中,作为管控客户端连接之用。
基本安全功能
SQL Azure Server会有两种安全组群:
* 服务器角色:有 dbmanager 以及 loginmanager 两种。
o dbmanager:赋与用户可以创建数据库(即CREATE DATABASE指令)的权利。
o loginmanager:赋与用户可以创建登录帐户(即CREATE LOGIN指令)的权利。
* 数据库角色:与安装在本机或服务器上版本的SQL Server相同。
SQL Azure Server目前只支持使用SQL验证(SQL Authentication)的安全验证方式,以往的Windows验证在SQL Azure上不支持。而在SQL Azure Server创建时,除了master数据库以外,还会再多创建一个具有SQL Server的sa帐户相等权力的帐户,供用户操作SQL Azure Server用,此帐户称为服务器级主帐户(server-level principal),基于数据库的安全,管理人员必须要在 SQL Azure Server 中再创建一个或多个登录帐户后,再授权给数据库,客户端应用程序不宜使用服务器级主帐户来访问 SQL Azure Server 与数据库。
SQL Azure 基于架构上的设计与天生的限制,SQL Azure Server的帐户与安全控制会有下列限制:
* 只有服务器级主帐户才具有变更密码的能力, loginmanager 组群的成员帐户不具变更密码的权限,同时如果要访问master数据库,则该用户帐户必须要被对应到master数据库,同时服务器级主帐户是不可以变更或删除的,同时只要是被设为服务器级主帐户的用户,就算没有给予 dbmanager 或 loginmanager ,仍然可以创建数据库并管理用户。
* 只要是登录服务器,一律以master为默认数据库,US-English为默认的登录语系。 * 若要运行CREATE/ALTER/DROP LOGIN或CREATE/DROP DATABASE,必须要先连至master数据库。
* 当要在ADONET运行前述指令时,不可以使用参数化命令,而且前述命令于每个SQL批量也只能有一个(且是唯一的一个)。
* 当要运行CREATE USER配合FOR/FROM LOGIN选项时,它也必须是SQL批量中唯一的一个。
* 当要运行ALTER USER配合WITH LOGIN选项时,它也必须是SQL批量中唯一的一个。 * 只有服务器级主帐户以及被赋与 dbmanager 角色的成员才有运行CREATE DATABASE与DROP DATABASE的权力。
* 只有服务器级主帐户以及被赋与 loginmanager 角色的成员才有运行CREATE LOGIN、ALTER LOGIN与DROP DATABASE的权力。
* 若想访问master数据库,则该帐户必须要对应到master数据库。 |
|