SQLServer 授权权限 1. SQLServer服务器级别,创建登录用户(create login) 2. 创建数据库用户(create user),习惯上,“数据库用户”的名字和“登录账户”的名字相同。 3. master数据库授权访问视图权限 否则无法执行update操作 4. 自定义角色--只执行一次(创建updateHIS库中所有表的权限的角色) 5. 通过加入数据库角色,赋予数据库用户“db_datareader”制度权限医技update权限 6. 授权用户访问多个数据库,WN010用户可以访问 HIS和CIS两个库 7. 其他操作 8. 查询数据中所有用户角色以及服务器角色

USE HIS
    create login WN010
    with password='123456',
    --must_change,                       --仅适用于SQL Server登录。如果包含此项,则SQLServer将在首次使用新登录时提示用户输入新密码。
    --sid=,
    default_database = HIS,
    --default_language=language,
    check_expiration=off,                --仅适用于SQL Server登录。指定是否对此登录账户强制实施密码过去策略。默认值off
    check_policy=off                     --仅适用于SQL Server登录。指定对应词登录强制实施运行SQLServer计算机的Windows密码策略。默认on
    --credential=sysadmin                --将映射到新SQLServer登录的凭据名称。该凭证必须已存在于服务器中。此前此选项将凭据链接到登录名。凭据不能映射到系统管理员(sa)登录名。

2. 创建数据库用户(create user),习惯上,“数据库用户”的名字和“登录账户”的名字相同。

create user WN010
for login WN010
with default_schema = dbo    --默认实例

3. master数据库授权访问视图权限 否则无法执行update操作

USE master
  grant view server state to WN010

4. 自定义角色--只执行一次(创建updateHIS库中所有表的权限的角色)

USE HIS
GO
EXEC sp_addrole 'updateroler' --删除自定义角色:EXEC sp_droprole 'updateroler' GRANT UPDATE TO updateroler10 --REVOKE UPDATE FROM updateroler
--如果想授权指定表
 --GRANT UPDATE ON dbo.ZY_BRSYK TO updateroler

5. 通过加入数据库角色,赋予数据库用户“db_datareader”制度权限医技update权限

USE HIS
GO
exec sp_addrolemember 'db_datareader','WN010'    --通过加入数据库角色,赋予数据库用户db_datareader权限
exec sp_addrolemember 'updateroler','WN010'    --再授予更新权限
--删除角色成员
--exec sp_droprolemember 'db_owner','WN002'
/*
角色名称 角色描述
db_owner 数据库的拥有者,该角色的用户可以在数据库中执行任何操作。
db_accessadmin 该角色的成员可以从数据库中增加或者删除用户。
db_datareader 该角色的成员允许从任何表读取任何数据。
db_datawriter 该角色的成员允许往任何表写入数据。
db_ddladmin 该角色的成员允许在数据库中增加、修改或者删除任何对象(即可以执行任何DDL语句)。
db_securtyadmin 该角色的成员可以更改数据库中的权限和角色。
db_backupoperator 该角色的成员允许备份数据库。
db_denydatareader 该角色的成员被拒绝查看数据库中的任何数据,但是他们仍然可以通过存储过程来查看。
db_denydatawriter 像db_denydatareader角色,该角色的成员被拒绝修改数据库中的任何数据,但是他们仍然可以通过存储过程来修改。
public 当尚未对某个用户授予或者拒绝对安全对象的特定权限时,这该用户将据称授予该安全对象的public角色的权限,这个数据库角色不能被删除
*/

6. 授权用户访问多个数据库,WN010用户可以访问 HIS和CIS两个库

use CIS
go

EXEC sp_addrole 'updateroler10'
--EXEC sp_droprole 'updateroler10'
GRANT UPDATE TO updateroler10
go
create user WN010 
for login WN010 
with default_schema=dbo
go
exec sp_addrolemember 'db_datareader','WN010'    --通过加入数据库角色,赋予数据库用户db_datareader权限
exec sp_addrolemember 'updateroler10','WN010'    --再授予更新权限
go

7. 其他操作

/*-----------------------------------------------------------------------------
--1. 启用、禁用登录账户
alter login WN010 disable
alter login WN010 enable
--2. 修改登录账户名称与密码
alter login WN010 with name = WNCS
alter login WN010 with password = '123456'
--3.删除SQLServer登录账户
drop login WN010

--4. 修改数据库用户名、密码、数据库用户
alter user WN010 with name = WNCS
alter user WN010 with password = '123456'
alter user WN010 with default_schema = sys
--5.删除数据库用户
drop user WN010
-----------------------------------------------------------------------------*/

8. 查询数据中所有用户角色以及服务器角色

select * from sys.database_principals