SqlServer架构、帐户、对象权限管理笔记

1、sqlserver权限管理按照实例–>数据库–>架构–>对象资源几层逻辑进行组织;账号按照实例登录帐户–>数据库角色(所有数据库用户都属于public角色,不能将用户从public中移除)–>数据库用户几层逻辑进行组织。
2、sqlsever任何架构都只能有一个所有者,赋予一个新的用户,原用户会自动失去所有者权限,无法读写表,非架构所有者无存储过程执行权限等,易被忽略带来故障。
3、一个数据库用户可以不拥有架构,也可以拥有多个架构。多个数据库用户想拥有同一个架构可以通过加入相同角色,借助角色获得架构所有者权限。
4、db_denydatawriter,db_denydbreader是禁止的意思,勾选上不是增加权限,是取消权限。
5、细粒度的用户权限也可以通过直接设置安全对象权限来实现。
6、在一个访问链中,sqlserver会比较对象的所有者和被调用对象的所有者,如果相同,则不再询问访问凭证,比如存储过程被调用向一个表插入数据行,sqlserver称为管理所有权链。
7、在sql管理器界面可以直接为数据库用户添加某个单独的表或视图等对象权限,但是图形界面无法直接删除或取消权限,可以利用以下语句:REVOKE/DENY SELECT ON grid.BHosCheckRIS TO jkzuser
8、查询所有孤立数据库用户:exec sp_change_users_login @Action=‘Report’;处理孤立用户:exec sp_change_users_login ‘UPDATE_ONE’,‘用户名’,‘登录名’
9、如果数据库用户仍拥有数据库架构,用户不允许被删除;角色仍含有成员,角色不允许被删除;架构仍含有对象,架构不允许被删除。

(以上基于sqlserver2012)

你可能感兴趣的:(sqlserver,架构,数据库)