安全管理 —-主题,权限,安全对象

  • 安全管理 —-主题,权限,安全对象已关闭评论
  • 918 views
  • A+
所属分类:数据库
广告也精彩
本文预计阅读时间 10 分钟

  主体:(SQL Server)
*认证类型:Windows认证和SQL Server认证
Windows级别的主题Windows账号只限于服务及操作级别,用户不能授予其对特定数据库对象的操作权限
Sql Server级别的主题,Sql Server级别的主题包括Sql Server登录账号和服务器角色。角色是多种权限的集合 sysadmin 系统管理员,所有权数据库级别的主体:数据库用户,数据库角色和应用程序角色 --默认情况下public角色
安全对象:概念略
权限:概念略,主要有SELECT,UPDATE,REFERENCES,INSERT, DELETE,EXCUTE,VIEW DEFINITION,  ALTER,TAKE OWNERSHIP,CONTROL
创建WINDONWS认证登录用户
CREATE LOGIN 计算机的域名
FROM WINDOW
[WITH DEFAULT_DATABSE=DATABSE
| DEFAULT_LANGUAGE=language]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
create login [PC-20131117LMNL\Administrator]
from windows
WITH
DEFAULT_database=master
[PC-20131117LMNL\Administrator]为计算机的域名
select * from sys.server_principals --查询当前服务器的Windows认证登录用户信息
修改windows认证登录用户 --ALTER LOGIN
删除windows认证登录用户 --DROP LOGIN
创建SQL Server认证登录用户
CREATE LOGIN FZH
WITH PASSWORD='312',
DEFAULT_Database=mster,
check_expipation=ON --强制密码是否过期
修改SQL Server认证登录用户 ALTER LOGIN FZH
ALTER LOGIN FZH
WITH PASSWORD='312'
OLD_PASSWORD='123'
删除SQL Server认证登录用户 DROP LOGIN FZH
select * from sys.server_principals WHERE type_desc='SERVER_ROLE' --查询当前服务器的规定服务角色的信息
向服务器角色添加用户
EXEC sp_addsrvrolemember '登录名','服务器角色'
向服务器角色删除用户
EXEC sp_dropsrvrolemember '登录名','服务器角色'
查询服务器角色中的登录用户-sp_helpsrvrolemember
sp_helpsrvrolemember '登录名','服务器角色'
创建数据库用户-CREATE USER
create user fzh FOR LOGIN [登录名]
EXEC sp_helpuser --查看指定数据库中的所有数据库用户或数据库角色的信息
修改/删除数据库用户 -ALTER/DROP USER
使用系统目录视图sys.databse_principals 和sys.server_principals查询登录用户机及其对应的数据库用户信息
SELECT s.name AS LoginName,d.name AS DbName,d.sid AS Sid
FROM sys.database_principals d inner join sys.server_principals s on d.sid=s.sid
sp_change_users_login列出当前数据库中未连接到任何登录名的用户及相应的安全标识符
sp_helpbfixedrole查询数据库角色的名称及其描述信息
sp_addrolemember可以为当前数据库中的数据库角色添加数据库用户,数据库角色,windows登录或windows组
sp_droprolemember通过从sysmembers表中删除行来删除数据库角色的成员
创建自定义数据库角色-CREATE ROLE
修改自定义数据库角色-ALTER ROLE
删除自定义数据库角色-DROP ROLE
向角色授予权限并添加角色成员
GRANT SELECT ON 表名 TO 角色名
EXEC sp_addrolemember '角色' '安全账户' -- 所谓的安全账户可以使数据库用户,数据库角色,windows登录和windows组
创建应用程序角色- CREATE APPLICATION ROLE
创建应用程序角色并授予权限
create application role roleName
with passwor='312',
default_schema=dbo
GRANT select on 表名
To roleName
使用sp_setapprole激活应用程序角色
修改,删除应用程序角色 -ALTER/DROP APPLICATION ROLE
使用sys.fn_builtin_permission查询内置权限
GRANT(授予),DENY(拒绝),REMOVE(移除)
例子:
USER MASTER
GRANT ALTER ANY DATABASE
To 用户 | 角色
架构的概念:架构是单个用户所拥有的数据库对象(如表,视图,存储过程等)的集合,这些对象形成单个命名空间。架构的所有者可以
是数据库用户,数据库角色,也可以是应用程序角色
(1)创建架构 -create schema 架构名称 [数据库主题的名称]{ 指定架构内创建表的create table语句 | 视图语句 | 授予语句 | 移除语句 |
拒绝语句 }
(2)传递架构对象 -alter schema 架构名称 transfer 要移入架构包含的对象的名称
(3)删除价格 - drop schema
(4)更改架构的拥有者 -ALTER AUTHORIZATION
ALTER AUTHORIZATION on Schema::架构名称
To principal_name
评估当前用户对安全对象的有效权限-Has_perms_by_name
select
case Has_perms_by_name('表名','OBJECT','SELECT')
WHEN 1 THE 'YES'
ELSE 'NO'
查询当前用户对安全对象的有效权限-fn_my_permissions
EXECUTE AS LOGIN ='FZH' --切换登录名
GO user mster
select * from fn_my_permissions('表名','OBJECT') --查找指定表对象所有的操作权限
创建凭据
create CREDENTIAL 凭据名
with IDENTITY='连接时账户的名称'
SECRET='密码'
ALTER LOGIN 登录用户
WITH CREDENTIAL=凭据名
ANSI标准里面包括下列对象权限
usage:批准使用指定的域
select:允许访问指定的域
insert:允许对象插入到指定表的全部字段
insert:(列名):允许对象插入到指定表的指定字段
update:依序对象更显到指定表的全部字段
update:(列名):允许对象更新到指定表的指定字段
权限操作GRANT和REVOKE
GRANT SELECT,INSERT ON 表明 TO 用户,用户2 GRANT OPTION && ADMIN OPTION
GRANT OPTION:根级给用户授予权利
ADMIN OPTION:系统级给用户授予其他人授予权利的权利
控制对单独字段的访问:GRANT UPDATE(NAME) ON 表名 TO PUBLIC
数据库账户PUBLIC 是个代表数据库里全体用户的账户
角色操作
CREATE ROLE语句
create role rela_name
grant select, update on 表明 to rela_name
grant rela_name to user1
DROP ROLE语句
SET ROLE 语句

weinxin
九四君博客站长语录
欢迎关注订阅‘爱君娱乐科技’微信公众号,本站的资源也会上传到‘爱君娱乐科技’公众号。
广告也精彩