SQLServer 授权权限
1. SQLServer服务器级别,创建登录用户(create login)
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