当前位置: 澳门新濠3559 > 数据库 > 正文

可能没有意识到访问服务器中的敏感数据是非常

时间:2019-11-22 23:13来源:数据库
sp_change_users_login 编制程序管理SQL SELANDVEQashqai的帐号    各样人都关切数据安全。 只要不关怀的话,恐怕未有发觉到拜谒服务器中的敏感数据是极度轻便的。 因为SQL SE讴歌MDXVEGL450在这

sp_change_users_login

编制程序管理SQL SELANDVEQashqai的帐号 
 
各样人都关切数据安全。
只要不关怀的话,恐怕未有发觉到拜谒服务器中的敏感数据是极度轻便的。
因为SQL SE讴歌MDXVEGL450在这里上边曾经替我们考虑过了,
之所以在我们付出应用程序就足以一向运用SQL SEPRADOVERAV4的安全计策。

 

--在镜像搭建后,在主库服务器上开创登入,并在数据库上创立相应顾客,
--数据库中顾客被同台到镜像数据库中,但报到是实例级对象,不大概协同,
--因而须要手动同步登陆到镜像实例上。
 
--当登陆未合营到镜像实例上时,借使镜像爆发故障转移,则应用程序
--不能访问镜像数据库,镜像数据库上未与登陆向管理的顾客被称为
--孤立客商

SQL Server的体系存款和储蓄进程的称呼以'sp_'开首,并寄存在Resource数据库中,系统管理员具备那么些囤积进程的选拔权限,能够在自由数据库中运营系统存款和储蓄进度,但施行的结果会反映在时下数据库中.

退换当前数据库中 SQL Server 客商与 Microsoft® SQL Server™ 登陆之间的关联。

 在SQL SECRUISERVE奇骏中,我们得以在ENTERPSportageISE MANAGE奥德赛前成立二个报到帐号,
何况授予一定的权杖,假如要做到我们的应用程序中吗?

 

--
 
sp_change_users_login [ @Action = ] 'action'
    [ , [ @UserNamePattern = ] 'user' ]
    [ , [ @LoginName = ] 'login' ]
    [ , [ @Password = ] 'password' ]
[;]
--Auto_Fix
--将近来数据库的sys.database_principals 系统目录视图中的顾客项链接到同名的SQL Server 登入名。若是空中楼阁同名的登陆名,将会成立二个。检查Auto_Fix 语句的结果,确认实际链接是或不是科学。在对安全性相比敏感的状态下,要幸免选择Auto_Fix。
 
--假诺采取Auto_Fix 时登入名尚不设有,则必得内定user 和password,不然必得钦赐user,但password 将被忽略。login 必得为NULL。user 必需是日前数据库中的有效率户。无法将另叁个客户映射到该登陆名。
 
--Report
--列出脚下数据库中未链接到别的登陆名的顾客以至对应的平安标记符(SID)。user、login 和password 必需为NULL 或不钦赐。
 
--若要接收系统表通过有个别查询替换报表选项,请将sys.server_prinicpals 中的条目款项与sys.database_principals 中的条款进行比较。
 
--Update_One
--将方今数据库中钦赐的user 链接到现成的SQL Server login。必需内定user 和login。password 必需为NULL 或不点名。  

1.sp_database:列出服务器上的享有数据库消息,包括数据库名称和尺寸

语法

==============================================================================
SQL SECRUISERVE奇骏提供了之类系统经过

 

--镜像切换后
--查看孤立顾客
USE REPDB
GO
EXEC sp_change_users_login
@Action = 'REPORT',
@UserNamePattern = NULL,
@LoginName  = NULL,
@Password =  NULL  

用法:exec sp_databases

sp_change_users_login [ @Action = ] 'action'``[ , [ @UserNamePattern = ] 'user' ]``[ , [ @loginName= ] 'login' ]

▲▲一、SP_ADDLOGIN
创制新的 Microsoft SQL Server 登入,使客户能够连接使用 SQL Server 身份验证的 SQL Server 实例。

 

--创立登入[T1],并将T1和数据库[REPDB]中的客户[T1]关联
--该措施雷同产生镜像两段的登陆SID不一致,进而招致孤立客户
USE [master]
GO
CREATE LOGIN [T1] WITH PASSWORD=N'T1', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
USE REPDB
GO
EXEC sp_change_users_login
@Action = 'Update_One',
@UserNamePattern = 'T1',
@LoginName  = 'T1'

2.sp_helpdb:报告有关钦点数据库或具有数据库的音讯

参数

语法
sp_addlogin [ @loginame = ] 'login'
    [ , [ @passwd = ] 'password' ]
    [ , [ @defdb = ] 'database' ]
    [ , [ @deflanguage = ] 'language' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryption_option' ]

 

--使用AUTO_FIX来解决
--该措施相似引致镜像两段的记名SID分裂,进而导致孤立客商
USE REPDB
GO
EXEC sp_change_users_login
@Action = 'Auto_Fix',
@UserNamePattern = 'T2',
@Password =  'T2'

用法:exec sp_helpdb

[ @Action = ] '*action*'

参数
[@loginame =] 'login'
报到的称呼。login 的数据类型为 sysname,未有暗中同意设置。

 

--推荐做法
--在主库上询问获得须求一块的客商sid
USE master;
select sid,name from syslogins;
 
    --============================================
--在从库上创建登陆
exec sp_addlogin
@loginame = 'DB1Login',
@passwd = 'Sql@123',
@sid=0x82873B5AFFEFE54EB4F9CA05C303C9AE

3.sp_renamedb:修改数据库的名号

陈述此进程要试行的操作。action 的数据类型为 varchar,能够是上边包车型大巴某部值。

[@passwd =] 'password'
登陆密码。password 的数据类型为 sysname,暗中认可设置为 NULL。sp_addlogin 实践后,password 被加密并蕴藏在系统表中。

 

--MSDN:
EXEC sp_addlogin [ @loginame = ] 'login'
    [ , [ @passwd = ] 'password' ]
    [ , [ @defdb = ] 'database' ]
    [ , [ @deflanguage = ] 'language' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryption_option' ]
[;]

用法:exec sp_renamedb [ @dbname = ] '*old_name*' , [ @newname = ] '*new_name*'

[@defdb =] 'database'
签到的暗许数据库(登陆后登陆所连选取的数据库卡塔尔。database 的数据类型为 sysname,私下认可设置为 master。

4.sp_tables:重返当前条件下可查询的表或试图的新闻

描述

[@deflanguage =] 'language'
顾客登陆到 SQL Server 时系统指使的暗许语言。language 的数据类型为 sysname,私下认可设置为 NULL。若无一点点名 language,那么 language 被安装为服务器当前的默许语言(由 sp_configure 配置变量 default language 定义卡塔尔国。改进服务器的暗中认可语言不会转移现存登入的暗中认可语言。language 保持与增加报届时所选取的默许语言同样。

用法:

Auto_Fix将方今数据库的 sysusers 表中的顾客条款链接到 syslogins 中同名的登入上。提出检查 Auto_Fix 语句的结果,确认营造的链接是预期的结果。在对安全性相比敏感的情形下,制止接受 Auto_FixAuto_Fix 对链接作出最好的测度,付与客商的拜访权限可能比预想的要多。

[@sid =] sid
安然标志号 (SID)。sid 的数据类型为 varbinary(16),暗中同意设置为 NULL。假设sid 为 NULL,则系统为新登入生成 SID。纵然采纳 varbinary 数据类型,非 NULL 的值也亟须偏巧为 16 个字节长度,且不能够事先存在。SID 很有用,举个例子,若是要编写 SQL Server 登入脚本,或要将 SQL Server 登陆从后生可畏台服务器移动到另大器晚成台,並且期望登录在服务器间具有同等的 SID 时。

   sp_tables [ [ @table_name = ] 'name' ] 
     [ , [ @table_owner = ] 'owner' ] 
     [ , [ @table_qualifier = ] 'qualifier' ] 
     [ , [ @table_type = ] "type" ] 
     [ , [@fUsePattern = ] 'fUsePattern'];

5.sp_columns:返回当前环境中可查询的指定表或视图的列信息,包括列的数据类型和长度
用法:

sp_columns [ @table_name = ] object  [ , [ @table_owner = ] owner ] 
     [ , [ @table_qualifier = ] qualifier ] 
     [ , [ @column_name = ] column ] 
     [ , [ @ODBCVer = ] ODBCVer ]
6.sp_help:报告有关数据库对象(sys.sysobjects 兼容视图中列出的所有对象)、用户定义数据类型或某种数据类型的信息。

user 必须是当下数据库中的有功效户,login 必须为 NULL、长度为零的字符串 或不内定。

[@encryptopt =] 'encryption_option'
钦定当密码存款和储蓄在系统表中时,密码是不是要加密。encryption_option 的数据类型为 varchar(20),能够是下列值之大器晚成。

用法:sp_help [ [ @objname = ] 'name' ]

Report列出最近数据库中未链接到其余登陆的客商及其相应的平安标志号 。

值     描述


NULL    加密密码。那是暗许设置。
skip_encryption  密码已加密。SQL Server 应该存款和储蓄值何况并非再行对其加密。
skip_encryption_old 已提供的密码由 SQL Server 较早版本加密。SQL Server 应该存款和储蓄值并且不用再行对其加密。此选项只供升级使用。

▲▲二、SP_GRANTDBACCESS
为 Microsoft SQL Server 登入或 Microsoft Windows NT 客商或组在这里时此刻数据库中增添三个康宁帐户,并使其能够被予以在数据库中施行活动的权限。

语法:
sp_grantdbaccess [@loginame =] 'login'
    [,[@name_in_db =] 'name_in_db' [OUTPUT]]

参数:
[@loginame =] 'login'
脚下数据库中新安全帐户的登陆名称。Windows NT 组和客商必需用 Windows NT 域名限制,格式为"域用户",例如 LONDONJoeb。登陆无法运用数据库中本来就有个别帐户作为外号。login 的数据类型为 sysname,未有暗中同意值。

[@name_in_db =] 'name_in_db' [OUTPUT]
数据库中帐户的称谓。name_in_db 是 sysname 类型的 OUTPUT 变量,默许值为 NULL。若无一点点名,则动用 login。假若将其钦赐为 NULL 值的 OUTPUT 变量,则设置 @name_in_db 为 login。当前数据库不必存在 name_in_db。

▲▲三、SP_DROPLOGIN
删除 Microsoft SQL Server 登入,以阻挠使用该登入名访谈 SQL Server。

语法
sp_droplogin [ @loginame = ] 'login'

参数
[@loginame =] 'login'
将被删去的记名。login 的数据类型为 sysname,未有默许值。login 必得已经存在于 SQL Server 中。

▲▲四、SP_REVOKEDBACCESS
从此以往时此刻数据库中去除安全帐户。

语法
sp_revokedbaccess [ @name_in_db = ] 'name'

参数
[@name_in_db =] 'name'
是要刨除的帐户名。name 的数据类型为 sysname,无暗中同意值。name 能够是 Microsoft? SQL Server? 顾客名或 Microsoft Windows NT? 顾客名或组名,何况必得存在于当下数据库中。当内定 Windows NT 客商或组时,请钦点该 Windows NT 客商或组在数据库中可被辨认的称号(即用 sp_grantdbaccess 增加的名称卡塔 尔(英语:State of Qatar)。

▲▲五、GRANT
在安全系统中开创项目,使前段时间数据库中的顾客能够管理当下数据库中的数据或推行一定的 Transact-SQL 语句。

语法
语句权限:

GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]

对象权限:

GRANT
    { ALL [ PRIVILEGES ] | permission [ ,...n ] }
    {
        [ ( column [ ,...n ] ) ] ON { table | view }
        | ON { table | view } [ ( column [ ,...n ] ) ]
        | ON { stored_procedure | extended_procedure }
        | ON { user_defined_function }
    }
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

▲▲六、REVOKE
去除曾在眼下数据库内的客户上授予或谢绝的权能。

语法
语句权限:
REVOKE { ALL | statement [ ,...n ] }
FROM security_account [ ,...n ]

对象权限:

REVOKE [ GRANT OPTION FOR ]
    { ALL [ PRIVILEGES ] | permission [ ,...n ] }
    {
        [ ( column [ ,...n ] ) ] ON { table | view }
        | ON { table | view } [ ( column [ ,...n ] ) ]
        | ON { stored_procedure | extended_procedure }
        | ON { user_defined_function }
    }
{ TO | FROM }
    security_account [ ,...n ]
[ CASCADE ]
[ AS { group | role } ]

▲▲SP_PASSWORD
增进或修改 Microsoft? SQL Server? 登入的密码。

语法
sp_password [ [ @old = ] 'old_password' , ]
    { [ @new =] 'new_password' }
    [ , [ @loginame = ] 'login' ]

参数
[@old =] 'old_password'
是旧密码。old_password 为 sysname 类型,其默许值为 NULL。

[@new =] 'new_password'
是新密码。new_password 为 sysname 类型,无暗许值。若无利用命名参数,就必须钦命 old_password。

[@loginame =] 'login'
是受密码校勘影响的登陆名。login 为 sysname 类型,其暗中同意值为 NULL。login 必须已经存在,何况只可以由 sysadmin 固定服务器剧中人物的成员钦定。

参数

[ @objname =] '*name*'
sysobjects 类型或 systypes 表中其余客户定义数据类型的某些对象的称呼。name 的数据类型为 nvarchar(776),暗中认可值为 NULL。不可能选择数据库名称。

7.sp_stored_procedures:突显存款和储蓄进度的列表

 
sp_stored_procedures [ [ @sp_name = ] 'name' ] 
    [ , [ @sp_owner = ] 'schema'] 
    [ , [ @sp_qualifier = ] 'qualifier' ]
    [ , [@fUsePattern = ] 'fUsePattern' ]

userlogin 必得为 NULL、长度为零的字符串 或不钦赐。

 

应用实例:

--添加
--加多顾客:
exec sp_addlogin '客商名','密码','暗许数据库名'

--增多到数据库
exec sp_grantdbaccess '客户名','数据库名'

--分本权限
grant insert,select,update,delete on table1 to public

--删除        
--删除权限
revoke insert,delete on table1 from public

--删除数据库中的顾客
exec sp_revokedbaccess '用户名'

--删除顾客
exec sp_droplogin '用户名'

--示例2

--创设仅对某些数据库具备全部权力的顾客
--切换成您新扩张的客商要调整的数据库
use 你的库名
go

--新扩展客商
exec sp_addlogin 'test' --添Garden录
exec sp_grantdbaccess N'test' --使其形成近年来数据库的合法客户
exec sp_addrolemember N'db_owner', N'test' --赋予对协调数据库的保有权限

--那样制造的客户就只好访谈本人的数据库,及数据库中隐含了guest顾客的公共表
go

--删除测量检验顾客
exec sp_revokedbaccess N'test' --移除对数据库的拜会权限
exec sp_droplogin N'test' --删除登入

参数

[ @sp_name = ] '*name*'
用以重返目录音信的历程名。name 的数据类型为 nvarchar(390),默许值为 NULL。援助通配符情势相称。

[ @sp_owner = ] '*schema*'
该进程所属架构的称号。schema 的数据类型为 nvarchar(384),暗许值为 NULL。帮助通配符情势匹配。假使未钦命 owner,则依照底子 DBMS 的暗中同意进程可知性法则。

在 SQL Server 中,假如当前架构包蕴具备钦定名称的经过,则赶回此进度。假若钦点了非限制存款和储蓄进程,则数据库引擎按以下顺序寻觅此进度:

  • 脚下数据库的 sys 架构。
  • 调用方的私下认可架构(在利用批或动态 SQL 试行时卡塔 尔(阿拉伯语:قطر‎;也许,倘诺非约束的历程名称出今后另多少个进度定义的主心骨中,则随之寻觅满含那后生可畏经过的架构。有关默许架构的详细新闻,请参阅顾客架构抽离。
  • 现阶段数据库中的 dbo 架构。

[ @qualifier = ] '*qualifier*'
进程限制符的称呼。qualifier 的数据类型为 sysname,暗许值为 NULL。各类 DBMS 产物帮衬表的三有的命名格局(qualifier**.schema.**name)。在 SQL Server 中,qualifier 表示数据库名称。在一些付加物中,它代表表所在数据库情形的服务器名称。

[ @fUsePattern = ] '*fUsePattern*'

8.sp_password:加多或涂改登入账户的密码

sp_password [ [ @old = ] 'old_password' , ]
     { [ @new =] 'new_password' }
     [ , [ @loginame = ] 'login' ]

Update_One将眼下数据库中钦点的 user 链接到 loginlogin 必得已经存在。必需钦命 userlogin

图片 1参数

[ @old = ] '*old_password*'
旧密码。old_password 的数据类型为 sysname,暗许值为 NULL。

[ @new = ] '*new_password*'
新密码。new_password 的数据类型为 sysname,无私下认可值。若无动用命名参数,则必需钦点 old_password

 

[ @loginame = ] '*login*'
受密码修正影响的登录名。login 的数据类型为 sysname,暗中认可值为 NULL。login 必得已经存在,并且一定要由 sysadminsecurityadmin 固定服务器剧中人物的成员钦点。

[@UserNamePattern =] '*user*'

是时下数据库中的 SQL Server 顾客的名号。user 的数据类型为 sysname,暗中认可值为 NULL。sp_change_users_login 只可以用来 SQL Server 登陆和客商的安全帐户;而不可能用于 Microsoft Windows NT® 顾客。

[@LoginName =] '*login*'

SQL Server 登入的名称。login 的数据类型为 sysname,私下认可值为 NULL。

归来代码值

0

结果集

列名

数据类型

描述

UserNamesysname登录名。UserSIDvarbinary签到平安标志符。注释

利用此进程将近些日子数据库中客商的平安帐户链接到分裂的记名。假诺顾客登陆已改换,则应用 sp_change_users_login 将客户链接到新的报到,而不会丢弃客户的权柄。

login 不能为 sa,而 user 不能为 dboguestINFORMATION_SCHEMA 用户。

不可能在客商定义的作业中实行 sp_change_users_login

权限

任何 public 剧中人物的成员均可实行带有 Report 选项的 sp_change_users_login。只有 sysadmin 固定服务器剧中人物的成员本领钦定 Auto_Fix 选项。只有 sysadmindb_owner 剧中人物的成员技艺内定 Update_One 选项。

演示A. 显示登陆映射的当下顾客的告诉

上边包车型客车以身作则生成当前数据库中的客商及其安全标记符的告诉。

EXEC sp_change_users_login 'Report'

B. 改良客户的报到

下边的演示改良 pubs 数据库中的顾客 Mary 与现存登陆之间的链接,链接到新的登陆 NewMary 上(使用 sp_addlogin 添加)。

--Add the new login.USE mastergoEXEC sp_addlogin 'NewMary'go--Change the user account to link with the 'NewMary' login.USE pubsgoEXEC sp_change_users_login 'Update_One', 'Mary', 'NewMary'

编辑:数据库 本文来源:可能没有意识到访问服务器中的敏感数据是非常

关键词: