SQL Server SQL Server Windows database SQL Server

  • Slides: 74
Download presentation
SQL Server权限管理

SQL Server权限管理

任务一 SQL Server数据库的安全性层次 Windows database SQL Server table Db user SQL Logins db 1

任务一 SQL Server数据库的安全性层次 Windows database SQL Server table Db user SQL Logins db 1 P db roles Windows 账号 Db user db 2 db roles Windows 账号 SQL 账号 P SQL Roles P Db user dbn db roles P P P P

任务四 利用T-SQL管理登录帐号 1、创建帐户 格式: sp_addlogin [@loginname] ‘login’ [, [@passwd=] ‘password’] [, [@defdb=] ‘database’] [,

任务四 利用T-SQL管理登录帐号 1、创建帐户 格式: sp_addlogin [@loginname] ‘login’ [, [@passwd=] ‘password’] [, [@defdb=] ‘database’] [, [@language=] ‘language’] [, [@sid=] ‘sid’] [, [@encryption=] ‘encryption_option’] 例如:exec sp_addlogin ‘dbloginuser 1’, ‘password’, ’学生信息库’

任务四 利用T-SQL管理登录帐号 2、修改帐户 例如:修改登录帐户dbloginuser 1的默认数据库。 exec sp_defaultdb ‘dbloginuser 1’, ‘学生管理数据库’ 修改dbloginuser 1的密码。 exec sp_password

任务四 利用T-SQL管理登录帐号 2、修改帐户 例如:修改登录帐户dbloginuser 1的默认数据库。 exec sp_defaultdb ‘dbloginuser 1’, ‘学生管理数据库’ 修改dbloginuser 1的密码。 exec sp_password ‘password’, ’newpassword’‘dbloginuser 1’

任务四 利用T-SQL管理登录帐号 3、回收登录帐户 格式: sprevokelogin [@loginname] ‘login’ 例如:回收登录帐户dbloginuser 1。 exec sp_revokelogin dbloginuser 1

任务四 利用T-SQL管理登录帐号 3、回收登录帐户 格式: sprevokelogin [@loginname] ‘login’ 例如:回收登录帐户dbloginuser 1。 exec sp_revokelogin dbloginuser 1

任务四 利用T-SQL管理登录帐号 4、删除帐户 删除登录帐户dbloginuser 1。 exec sp_droplogin dbloginuser 1

任务四 利用T-SQL管理登录帐号 4、删除帐户 删除登录帐户dbloginuser 1。 exec sp_droplogin dbloginuser 1

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 1、使用系统存储过程使Windows NT的用户或 作组成 为SQL Server的登录帐户。 格式:sp_grantlogin [@loginane=]’login’ 例如:将Windows NT服务器上[servername]域的 作组[sqlgroup]映射为SQL

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 1、使用系统存储过程使Windows NT的用户或 作组成 为SQL Server的登录帐户。 格式:sp_grantlogin [@loginane=]’login’ 例如:将Windows NT服务器上[servername]域的 作组[sqlgroup]映射为SQL Server登录帐户。 exec sp_grantlogin [servernamesqlgroup]

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 2、撤消Windows NT服务器上[servername]域的 作组 [sqlgroup] 内用户与SQL Server登录帐户的映射。 exec sp_revokelogin [servernamesqlgroup]

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 2、撤消Windows NT服务器上[servername]域的 作组 [sqlgroup] 内用户与SQL Server登录帐户的映射。 exec sp_revokelogin [servernamesqlgroup]

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 3、拒绝Windows NT服务器上[servername]域的 作组 [sqlgroup]内用户登录SQL Server服务器。 exec sp_denylogin [servernamesqlgroup]

任务四 利用T-SQL管理登录帐号 SQL Server集成登录帐号 3、拒绝Windows NT服务器上[servername]域的 作组 [sqlgroup]内用户登录SQL Server服务器。 exec sp_denylogin [servernamesqlgroup]

任务五 使用T-SQL管理数据库用户 1、添加数据库用户 格式:sp_grantdbaccess [@loginame =] '账户名' [, [@name_in_db =] '数据库用户名’ 例如:在当前数据库中为Windows NT账户 CorporateGeorge.

任务五 使用T-SQL管理数据库用户 1、添加数据库用户 格式:sp_grantdbaccess [@loginame =] '账户名' [, [@name_in_db =] '数据库用户名’ 例如:在当前数据库中为Windows NT账户 CorporateGeorge. W 添加用户,并取名为Georgie。 User 学生管理数据库 go exec sp_grantdbaccess 'CorporateGeorge. W', 'Georgie'

1、固定服务器角色 2、使用T-SQL管理服务器角色: 1)查看服务器角色: Exec sp_helpsrvrole 2)查看服务器角色权限: Use master go Exec sp_srvrolepermission sysadmin

1、固定服务器角色 2、使用T-SQL管理服务器角色: 1)查看服务器角色: Exec sp_helpsrvrole 2)查看服务器角色权限: Use master go Exec sp_srvrolepermission sysadmin

1、固定服务器角色 2、使用T-SQL管理服务器角色: 3)将固定服务器角色分配给某指定的登录帐户: Exec sp_addsrvrolemember [servername dbloginuser 1], ’sysadmin’ 4)收回分配给某指定的登录帐户的固定服务器角色: Exec sp_dropsrvrolemember [servername dbloginuser

1、固定服务器角色 2、使用T-SQL管理服务器角色: 3)将固定服务器角色分配给某指定的登录帐户: Exec sp_addsrvrolemember [servername dbloginuser 1], ’sysadmin’ 4)收回分配给某指定的登录帐户的固定服务器角色: Exec sp_dropsrvrolemember [servername dbloginuser 1], ’sysadmin’

数据库角色 1)查看数据库角色: Use master go Exec sp_helpdbfixedrole

数据库角色 1)查看数据库角色: Use master go Exec sp_helpdbfixedrole

数据库角色 2)将某数据库角色分配给某指定的登录帐户: Use mydb 1 go Exec sp_addrolemember db_owner, dbuser 1

数据库角色 2)将某数据库角色分配给某指定的登录帐户: Use mydb 1 go Exec sp_addrolemember db_owner, dbuser 1

数据库角色 3)收回分配给某指定的登录帐户的指定数据库角色: Use mydb 1 Go Exec sp_droprolemember db_owner, dbuser 1

数据库角色 3)收回分配给某指定的登录帐户的指定数据库角色: Use mydb 1 Go Exec sp_droprolemember db_owner, dbuser 1

数据库角色 2、使用T-SQL管理数据库角色 格式:Sp_addrole [@rolename=]’role’[, [@ownername=]’owner’] 例如:use mydb 1 go exec sp_addrole ‘mangers’ go exec

数据库角色 2、使用T-SQL管理数据库角色 格式:Sp_addrole [@rolename=]’role’[, [@ownername=]’owner’] 例如:use mydb 1 go exec sp_addrole ‘mangers’ go exec sp_droprole ‘mangers’

管理数据库角色 sp_addrole:用来创建一个新的数据库角色 sp_addrole,owner sp_droprole:用于删除一个数据库角色 sp_droprole sp_helprole:显示当前数据库所有的数据库角色的所有信息 sp_helprole [‘role’] sp_addrolemember:向数据库某一角色中添加数据库用户 sp_addrolemember role,security_account sp_droprolemember:用来删除某一角色的用户 sp_droprolemember role,security_account

管理数据库角色 sp_addrole:用来创建一个新的数据库角色 sp_addrole,owner sp_droprole:用于删除一个数据库角色 sp_droprole sp_helprole:显示当前数据库所有的数据库角色的所有信息 sp_helprole [‘role’] sp_addrolemember:向数据库某一角色中添加数据库用户 sp_addrolemember role,security_account sp_droprolemember:用来删除某一角色的用户 sp_droprolemember role,security_account sp_helprolemember:用于显示某一数据库角色的所有成员 sp_helprolemember [‘role’]

Grant语句其语法格式: (1)对语句的许可 Grant {all|statement[, …n]} to security_account[, …n] [ WITH GRANT OPTION ]

Grant语句其语法格式: (1)对语句的许可 Grant {all|statement[, …n]} to security_account[, …n] [ WITH GRANT OPTION ]

Grant语句其语法格式: (2)对对象的许可 Grant { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view} |on {table|view} [(column[,

Grant语句其语法格式: (2)对对象的许可 Grant { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view} |on {table|view} [(column[, …n])] |on {stored_procedure|extended_procedure} } to security_account[, …n][ WITH GRANT OPTION ] [as {group|role}]

Deny语句其语法格式: (1)否定语句的许可 Deny {all|statement[, …n]} to security_account [, …n]

Deny语句其语法格式: (1)否定语句的许可 Deny {all|statement[, …n]} to security_account [, …n]

Deny语句其语法格式: (2)否定对象的许可 Deny { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view} |on {table|view} [(column[,

Deny语句其语法格式: (2)否定对象的许可 Deny { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view} |on {table|view} [(column[, …n])] |on {stored_procedure|extended_procedure} } to security_account[, …n]

【例】对多个用户拒绝多个语句权限,用户不能使用 create database和create table语句,除非给他们显式授 予权限。 Deny create table to Mary, John, [CorporateBob. J] Exec

【例】对多个用户拒绝多个语句权限,用户不能使用 create database和create table语句,除非给他们显式授 予权限。 Deny create table to Mary, John, [CorporateBob. J] Exec sp_helprotect NULL, Mary

Revoke语句其语法格式: (1)收回语句的许可 Revoke {all|statement[, …n]} from security_account [, …n]

Revoke语句其语法格式: (1)收回语句的许可 Revoke {all|statement[, …n]} from security_account [, …n]

Revoke语句其语法格式: (2)收回对象的许可 Revoke [grant option for] { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view}

Revoke语句其语法格式: (2)收回对象的许可 Revoke [grant option for] { {all [priviledges]|permission[, …n]} [(column[, …n])] on {table|view} |on {stored_procedure|extended_procedure} } from security_account[, …n] [as {group|role}]

【例】废除已授予用户Joe和CorporateBob. J 的 create table权限。 revoke create table from Joe, [CorporateBob. J] 它删除了允许Joe与CorporateBob. J

【例】废除已授予用户Joe和CorporateBob. J 的 create table权限。 revoke create table from Joe, [CorporateBob. J] 它删除了允许Joe与CorporateBob. J 创建表的权限。不 过,如果已create table权限授予给了包含 Joe 和 CorporateBob. J 成员的任何角色,那么 Joe 和 CorporateBob. J 仍可创建表。 【例】废除授予多个用户的多个语句权限。 revoke create table, create default from Mary, John Exec sp_helprotect NULL, Mary

授权、拒绝、默认权限 REVOKE: Neutral GRANT: Can Perform Action DENY: Cannot Perform Action

授权、拒绝、默认权限 REVOKE: Neutral GRANT: Can Perform Action DENY: Cannot Perform Action

授权允许访问 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI

授权允许访问 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI

拒绝访问 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI

拒绝访问 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI

默认状态 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI

默认状态 User/Role Eva Ivan David public SELECT INSERT UPDATE DELETE DRI