《MS SQL Server 2000管理员手册》系列——34. 使用者与安全性管理

win10cmd命令手册 CMD命令是一种命令提示符,CMD是command的缩写,即命令提示符(CMD),是在OS / 2 , Win为基础的操作系统(包括Windows 2000和XP中, Vista中,和Server 2003 )下的“MS-DOS 方式”。中文版Windows XP中的命令提示符进一步提高了与DOS下操作命令的兼容性,用户可以在命令提示符直接输入中文调用文件。 以下是cmd命令以及功能: 1.calc:启动计算器   2.appwiz.cpl:程序和功能   3.certmgr.msc:证书管理实.. 阅读详情

34. 使用者与安全性管理
建立与管理使用者登入账户
管理数据库存取权限
管理数据库角色
安全性账户授权
本章总结
本章将学习在 Microsoft SQL Server 2000 环境下管理使用者并确保安全性。安全性管理和备份、回复计划、容量规模及空间管理一样,都是 DBA 例行的工作。少了系统的安全性,数据就会遗失或被破坏。
本章涵盖了使用者和安全性管理有关的主题。我们会学习建立与管理使用者登入账户,以及不同的验证模式;另外还将学习 SQL Server 使用者 ID。 使用者登入账户 (user login)是用来验证使用者是否允许存取该 SQL Server,可透过 Microsoft Windows NT、Microsoft Windows 2000 或 SQL Server 来验证。 使用者ID (user ID)分配使用者权限,用来在个别数据库中存取特定对象。使用者 ID 与使用者登入账户相关,不过两者可以设定一样的名称,也可以设定不一样的名称,这些稍后将在本章讨论。本章学习在 SQL Serve r中分配的不同类型权限,以及如何使用权限。另外也会学习利用角色简化使用者的管理工作。最后会学到的是 SQL Server 2000 安全账户授权。在看完本章后,您应具备管理使用者登入账户和安全性的常识。
建立与管理使用者登入账户
 
现在先透过使用者登入账户,开始管理使用者与安全性的第一步。本节会介绍登入账户的重要性,以及用于维持登入账户的验证模式。接着我们会介绍三种建立登入的方法:使用 SQL Server Enterprise Manager、使用 Transact-SQL(T-SQL),以及使用 建立登入精灵 。最后回学习利用 Enterprise Manager 和T-SQL建立新的使用者账户。
建立使用者登入账户的原因
 
使用者登入账户可达到保护数据的目的,避免数据库被未验证过的使用者有意或无意的更改。利用使用者登入账户可识别 SQL Server 中的每一个授权使用者。每个使用者登入账户都拥有一组唯一的名称和密码。如果没有使用者登入账户,所有对 SQL Server 的连接将使用同一个识别符号,这样就无法根据不同层级的使用者设立不同层级的安全存取范围。
使用者登入账户可设定不同层级的安全存取,也就是用不同的登入账户就有不同存取对象和执行功能的权限。我们可对某些数据库对象加密,例如将预存程序和检视对未验证使用者隐藏定义。使用者登入账户可以允许特定层级的使用者插入或更新新信息至数据库数据表,而一般层级的使用者只能用只读方式存取数据表。
让我们回到 第 18 章 的范例,了解登入账户如何限制数据的存取。范例中利用检视表限制对特定数据的存取。假定一个 Employee 资料表中包含职员姓名、电话号码、办公室号码、等级、工资、奖金等信息,为避免使用者存取数据表中的机密数据,要先建立检视表,只包含如职员姓名、电话号码及办公室号码等较不机密的信息,透过使用者登入账户限制存取基底数据表的数据,仅允许检视表数据的存取。当然,如果没有利用使用者登入账户做控管,而允许任何使用者存取检视表或数据表,就失去了使用检视表的意义。
验证模式
 
验证模式有两种:Microsoft Windows 验证和混合模式验证。在 Windows 验证模式中,操作系统会负责验证使用者,在 SQL Server 中利用操作系统的验证决定使用者的权限。在混合模式验证中,Windows NT/2000 和 SQL Server 同时负责验证使用者。在存取 SQL Server 之前,必须先登入 Windows NT/2000 账户。因此选择验证模式前,必须决定是否要使用双重的验证。让我们更详细的了解这两种验证模式,然后学习执行这些模式。
Windows 验证
 
在 Windows 验证中,SQL Server 透过 Microsoft Windows NT/2000 来提供登入的安全性。当使用者登入 Windows NT/2000,同时确认了使用者账户身份。然后 SQL Server 将验证使用者是否为 Windows NT/2000 确认的使用者,然后依验证身分给与数据库存取的权限。SQL Server 的登入程序结合了 Windows 的安全登入程序,透过 Windows NT/2000 提供的复杂加密过程,建置了网络安全性属性。由于 SQL Server 和 Windows 的登入安全性验证是结合在一起的,所以这种方式不再需要别的验证方法。用来登入的唯一密码就是 Windows NT/2000 的密码。
Windows 验证是比混合验证模式更好的安全性方法,因为它提供了附加的安全性特性,包括安全确认、加密密码、稽核、密码到期时间、最小密码长度,以及在特定次数的失败登入后自动锁定账户。
混合模式验证
 
在混合模式验证中,使用者可以用 Windows 验证或 SQL Server 验证来存取SQL Server。当有一个来自非安全系统的连接时,SQL Server 会验证这个登入,检验是否设定过这个 SQL Server 登入账户。这个账户验证在 SQL Server 中执行,根据储存在数据库中的使用者名称和密码进行检验。在尝试连接 SQL Server 时,系统会提示使用者提供使用者名称和密码。如果没有提供这些信息,SQL Server 系统会拒绝该使用者的存取。
在您执行 Windows 95/98 时无法使用 Windows 验证模式,因此在这些平台上您必须使用 SQL Server 验证(用混合模式验证)。此外,Web 应用程序需要 SQL Server 验证(透过 Internet Information Server,或称为 IIS),因为这些应用程序的使用者并不一定都在同一个网域中,因此就不能依靠 Windows 安全性,这时就需要使用 SQL Server 安全性。其它需要存取数据库的应用程序也同样需要 SQL Server 验证:一些应用程序的开发人员会因为它们的应用程序结构简单而喜欢使用 SQL Server 安全装置。在使用 SQL Server 安全装置时(在信任网络中),应用程序的开发人员不再需要提供应用程序自身的安全性验证,这样可以简化他们的工作。
设定验证模式
 
请依下列步骤,用 Enterprise Manager 设定验证模式:
1. 开启 Enterprise Manager 窗口,在左边窗格中的服务器名称上按一下鼠标右钮,并从快捷菜单中选择 内容 ,进入 SQL Server 属性窗口。按一下 安全性 页签,如图34-1所示。
 
 
图34-1 「SQL Server属性」窗口的「安全性」页签
2. 在这个页签中,选择安全性方法和启动服务账户。在 安全性 区域中,指定是否使用 Windows NT/2000 和 SQL Server(混合模式)验证,或只使用 Windows NT/2000 验证。这里可以指定登入稽核层级。登入稽核层级指定保留哪些登入时的记录。应该根据安全性需要选择稽核等级,有四个等级可使用:
o  无 预设选项;不执行登入稽核。
 
o  成功 记录所有成功的登入尝试。
 
o  失败 记录所有失败的登入尝试。
 
o  全部 记录所有的登入尝试。
 
________________________________________
说明
稽核层级是一个数据库属性,同样的,这个设定将套用到所有的登入上。
________________________________________
3. 在 启动服务账户 区域中,指定在启动 SQL Server 服务时使用的 Windows NT 账户。可使用内建的本机系统账户,或指定一个账户后提供密码。按 确定 接受设定。
登入账户和使用者
 
接下来的几个章节中将学习建立登入账户和使用者。在开始之前,需要先了解何谓登入账户和使用者。这里仅将这两个字词简要的定义。
我们可以看到,要连到数据库中,可能会需要 Windows NT/2000 使用者账户,或许同时也许需要使用 SQL Server 验证。不论使用的是 Windows NT/2000 验证或混合模式验证,连接到 SQL Server 的账户都被称为「登入」账户。除了 SQL Server 登入账户,每个数据库会分配一组指定的使用者,这些使用者是虚拟账户。这些虚拟账户提供 SQL Server 登入账户一个别名。例如在 Northwind 数据库中,也许有使用者的名称为 manager ,而这个使用者名称和 SQL Server 登入账户 guest 有关;在 pubs 数据库中,可能有使用者名称也是 manager ,而这个使用者名称却与 SQL Server 登入账户 sa 有关。在预设情况下,SQL Server 登入账户和数据库使用者 ID 设定没有相关,因此并没有任何权限。
建立 SQL Server 登入账户
 
大部分的管理任务可以使用多种方法执行,而建立使用者登入账户也不例外。您能透过三种途径的任何一种来建立登入:使用 Enterprise Manager、使用 T-SQL 或使用 Create SQL Server Login Wizard。在本节中,您将学到如何使用这三种方法建立 SQL Server 登入账户。
利用 Enterprise Manager 建立 SQL Server 登入账户
 
要利用 Enterprise Manager 建立 SQL Server 登入账户,请按照下列步骤操作:
1. 在 Enterprise Manager 窗口的左边窗格中,展开服务器群组、服务器,然后展开 安全性 数据夹。在 登入 上按一下鼠标右钮,然后在快捷菜单中选择 新增登入 ,进入 SQL Server 登入属性窗口,如图34-2所示。在 一般 页签的 名称 文字方块中键入SQL Server登入账户。如果使用的是Windows验证,那么这个名称必须是有效的Windows NT或Windows 2000账户名称。接下来在 网域 文字方块中指定 Windows NT 或 Windows 2000 的网域。在预设区域指定使用者使用的预设数据库和语言。在 验证 区域中,指定是否使用 Windows NT 或 Windows 2000 账户,或者使用 SQL Server 验证。如果选择 SQL Server 验证,则使用混合模式验证。
 
 
图34-2 「SQL Server 登入属性」窗口的「一般」页签
2. 按一下 服务器角色 页签,如图34-3所示。在这个页签中可以指定新的登入选取的服务器角色,在可使用的角色清单中选择。按一下 属性 允许检视和修改所选取的角色。(有关角色的讨论将在本章的 <管理数据库角色> 一节中进行。)
 
 
图34-3 「SQL Server 登入属性」窗口的「服务器角色」页签
3. 选取 数据库存取 页签,如图34-4所示。这个页签可指定权限使用者可以存取的数据库。(数据库权限将在 <管理数据库存取权限> 一节中说明。)您可选择多个数据库以及对于这些数据库可用的角色。按 属性 就能检视和管理数据库角色属性。
 
 
图34-4 「SQL Server 登入属性」窗口的「数据库存取」页签
4. 完成指定选项之后,按一下 确定 储存登入账户。要看新的登入账户和其它登入账户,可以在 Enterprise Manager 中选取 登入 数据夹。在右边的选单中会列出所有登入账户。
使用 T-SQL 建立登入账户
 
使用 T-SQL 可以建立登入账户,需要使用 sp_addlogin 预存程序或sp_grantlogin 预存程序。sp_addlogin 预存程序只能将 SQL Server 验证过的使用者加入 SQL Server 数据库中。sp_grantlogin 预存程序则可以将 Windows NT/2000 验证过的使用者加入。
sp_addlogin 预存程序的语法如下:
sp_addlogin  [@loginame =] 'login'
        [ , [ @passwd = ] 'password'  ]
        [ , [ @defdb = ] 'database'  ]
        [ , [@deflanguage = ] 'language'  ]
        [ , [ @sid = ]'sid'  ]
        [ , [ @encryptopt = ] 'encryptionoption'  ]
可选择的参数如下:
•   密码 指定 SQL Server 登入账户密码。默认值为 NULL。
 
•   数据库 指定登入账户的预设数据库。默认值为 master 数据库。
 
•   语言 指定登入账户的预设语言。默认值为现有的 SQL Server 语言设定。
 
•   安全性识别码 (sid) 指定安全性识别码(一个唯一的数值)。如果没有指定这个数值,系统将会自动产生一个数值。使用者通常不使用 sid 参数,但是管理员可能在一些情况下会使用到 sid 。当 DBA 执行疑难排解任务时,可能需要使用 sid ,以确定正在检查哪个登入账户。 sid 参数是登入账户的内部识别码。
 
•  encryptopt_option 指定是否在系统数据表中将密码加密。默认值为NULL,表示密码被加密。指定 skip_encryption 表示密码没有加密。如果指定 skip_encryption_old,那么在较早版本的 SQL Server 中已加密的密码将不再被加密。只有在想要避免加密系统数据表中的密码时,才需要更改这个设定。
 
下面是一个简单的新增登入账户的范例:
EXEC sp_addlogin 'PatB'
记住在预存程序名称前要使用 EXEC 关键词。
下面是一个较复杂的新增登入账户范例。
sp_addlogin 'SharonR','mypassword','Northwind','us_english'
这个命令建立了名叫 SharonR 的使用者,使用 mypassword 密码。预设数据库为 Northwind,预设语言为 U.S. English。一般而言,让 SQL Server 来建立安全性识别比您自己来建立要好些。
sp_grantlogin 预存程序有下列语法:
sp_grantlogin 'login_name'
使用 sp_grantlogin 预存程序的范例如下:
EXEC sp_grantlogin 'MOUNTAIN_DEW/DickB'
在增加了这些登入账户之后,在左边的窗格中选取 登入 数据夹,以便在Enterprise Manger 中检视这些登入账户。
使用建立登入精灵
 
可依下列步骤,利用 建立登入精灵 建立 SQL Server 登入账户:
1. 展开一个服务器群组,并选取一个服务器。在 工具 菜单中选择 精灵 。在 选择精灵 对话框中展开 数据库 数据夹,选择 建立登入精灵 ,如图34-5所示,按 确定 。此时将显示 欢迎使用建立登入精灵 ,如图34-6所示。
 
 
图34-5 选择精灵画面

 
 
图34-6 欢迎使用建立登入精灵画面
2. 按 下一步 进入 选取这个登入的验证模式 画面,如图34-7所示。在这个画面中,您可以指定是否使用 Windows 验证或 SQL Server 验证(混合模式)。
 
 
图34-7 选取这个登入的验证模式画面
3. 按 下一步 进入 使用Windows NT的账户验证 画面或 使用SQL Server的验证 画面,出现的画面取决于步骤 2 中选取的验证模式。图34-8显示稍后的画面。在这个画面中指定登入 ID 和密码。如果选择的是 Windows NT 验证,请键入网域名称和使用者账户名称。
 
 
图34-8 使用 SQL Server 的验证画面
4. 按 下一步 ,显示 同意对安全性角色的存取 画面,如图34-9所示。在这个画面中,可以选取分配到该登入账户上的数据库角色。
 
 
图34-9 同意对安全性角色的存取画面
5. 按 下一步 进入 同意对数据库进行存取画面 ,如图34-10所示。在这个画面中可以选取登入账户可以存取的数据库。
 
 
图34-10 同意对数据库进行存取画面
6. 按 下一步 进入 完成建立登入精灵 画面,如图34-11所示,这里可以在文字方块中检查摘要信息。要变更设定可按 上一步 回到之前的画面,按 完成 即可完成建立新登入账户。
 
 
图34-11 完成建立登入精灵画面
建立 SQL Server 使用者
 
SQL Server 使用者可以利用 Enterprise Manager 或 T-SQL 建立。(在 SQL Server 中并没有用来完成这项设定的精灵)。本节中将利用这两种方式建立 SQL Server 使用者。请记住,SQL Server 使用者是为特定的数据库所定义,且特定的使用者登入名称对该数据库有不同的使用权限。SQL Server 使用者 ID 可被视为 SQL Server 登入账户的同义词,但是在登入时两者并不需要使用相同的名称。
________________________________________
说明
建立 SQL Server 使用者前,必须先为该使用者定义 SQL Server 登入账户,因为使用者名称需参照 SQL Server 登入账户。
________________________________________
使用 Enterprise Manager 建立使用者
 
与 SQL Server 登入账户不同的是,登入账户是在 Enterprise Manager 的 Security 数据夹中建立的,而 SQL Server 使用者则在 Enterprise Manager 左侧选单的指定数据库档案夹中建立。要使用 Enterprise Manager 建立使用者,请按照下列步骤操作:
1. 在需要建立使用者的数据库上按一下鼠标右钮,在快捷菜单中选择 新增 ,然后选择 数据库使用者 ,进入 数据库使用者属性 窗口,如图34-12所示。在 登入名称 下拉式清单中键入一个有效的 SQL Server 登入账户名称,并在 使用者名称 文字方块中键入新的使用者名称。在 数据库角色使用权限 清单中选取合适的复选框,为新使用者分配数据库角色。在本章的后面可以看到,为这些角色分配权限,便能够将权限套用到使用者上。
 
 
图34-12 数据库使用者属性画面
2. 按下 属性 按钮进入 数据库角色属性 画面,如图34-13所示。在这个窗口中可以更改选取的数据库角色。这个任务将在本章的 <管理数据库角色> 一节中解释。
 
 
图34-13 数据库角色属性画面
3. 在我们完成了这些设定选项后,按两次 确定 即可建立数据库使用者。
使用 T-SQL 建立使用者
 
要使用 T-SQL 建立数据库使用者,可以执行 sp_adduse 预存程序。这个预存程序可以在 ISQL 或 OSQL 中执行,语法如下:
sp_adduser [ @loginame = ] 'login'
     [ , [ @name_in_db = ] 'user' ]
   [ , [ @grpname = ] 'group' ]
Login 这个参数是 SQL Server 登入账户的名称,是必须提供的数据。user 变量是新的使用者名称,group 则是新使用者所隶属的群组或角色。如果没有指定 user 值,那么它的值会与 login 参数相同。
下面的命令建立了一个新的数据库使用者,其名称为 JackR 和 Windows NT 或Windows 2000 账户 FORT_WORTH/DB_User:
sp_adduser 'FORT_WORTH/DB_User', 'JackR'
FORT_WORTH 是系统或者网域名称,而 DB_User 是 Windows NT 或Windows 2000 账户名称。
管理数据库存取权限
 
 存取权限 (permissions)用来控制数据库对象的存取,并指定可操作特定数据库操作的使用者。可以将服务器和数据库存取权限都设定。服务器存取权限允许 DBA 执行数据库管理任务,数据库存取权限则是用来允许或者禁止存取数据库对象和陈述式。本节中将讨论存取权限的类型,以及如何分配存取权限。
服务器存取权限
 
服务器存取权限是分配给 DBA,允许DBA执行管理任务。这些存取权限定义在固定服务器角色。使用者登入账户也可以分配给固定服务器角色,但是这些角色不能被更改。(在本章稍后的 <使用固定的服务器角色> 一节中将讨论服务器角色。)服务器存取权限包括 SHUTDOWN、CREATE DATABASE、BACKUP DATABASE 和 CHECKPOINT 存取权限。服务器存取权限只能授权 DBA 作为执行管理任务使用,而不需要更改或者授予个人使用者。
数据库对象存取权限
 
数据库对象权限是权限类型中,属于允许数据库对象存取的类型。在存取数据表或检视使用 SQL 陈述式(如 SELECT、INSERT、UPDATE 和 DELETE)存取对象时,就需要使用对象存取权限。使用 EXECUTE 陈述式执行预存程序时也需要对象存取权限。
使用 Enterprise Manager 指定对象存取权限
 
要使用 Enterprise Manager 将数据库对象存取权限授予使用者,请按照下列步骤操作:
1. 展开服务器群组,展开一个服务器,展开需要分配存取权限的数据库,然后选取 使用者 数据夹。在右边窗格中会列出使用者。请在使用者名称上按一下鼠标右钮,并从快捷菜单中选择 内容 ,进入 数据库使用者属性 窗口,如图34-14所示。
 
 
图34-14 「数据库使用者属性」窗口
2. 按下 权限 按钮,进入 数据库使用者属性 窗口,如图34-15所示。(也可以在使用者名称上按一下鼠标右钮,从快捷菜单中选择 所有工作 ,然后选择 管理使用权限 来进入这个个窗口)。这里可以管理分配该使用者的存取权限,可以为该使用者分配多种存取权限,利用画面中的复选框指定 SELECT、INSERT、UPDATE、DELETE、EXEC 和 Declarative Referential Integrity(DRI)窗体数据列的存取权限。这些对象列在 对象 数据列中。也可以使用画面上方的选项来列出所有的对象,或只显示这个使用者有权限的对象。
 
 
图34-15 数据库使用者属性窗口中的权限窗口
使用 T-SQL 分配对象存取权限
 
执行 GRANT 陈述式,可利用 T-SQL 将对象存取权限指定给使用者。GRANT陈述式的语法如下:
GRANT  {ALL |  permission}
       [ column ON  {table | view} ] |
       [ ON table(column) ] |
       [ ON view(column) ] |
       [ ON  {stored_procedure | extended_procedure} ]
TO security_account
       [ WITH GRANT OPTION ]
       [ AS  {group | role} ]
security_account 参数必须是下列账户类型之一:
•  Microsoft SQL Server使用者
 
•  Microsoft SQL Server角色
 
•  Microsoft Windows NT 或 Windows 2000 使用者
 
•  Windows NT 或 Windows 2000 群组
 
使用 GRANT OPTION 关键词允许使用者将该权限授予其它使用者。这在授予存取权限给其它的 DBA 时很有用。然而,应该要小心使用 GRANT 选项。
AS 选项指定要执行 GRANT 陈述式的权限。GRANT 陈述式必须在使用者或角色有被授予权限时才能执行。
GRANT 陈述式可以按照下面的方式使用:
GRANT SELECT , INSERT, UPDATE
ON Customers
TO Guest
WITH GRANT OPTION
AS Accounting
因为 Accounting 角色可以在 Customers 资料表上授予存取权限,所以要使用AS Accounting 选项。GRANT OPTION 关键词让 MaryW 可将存取权限授予其它的使用者。
________________________________________
相关信息
要检视 GRANT 陈述式中指定的存取权限清单,请参阅< 在线丛书 >索引中的GRANT。
________________________________________
使用 T-SQL 撤销对象存取权限
 
您可以用 T-SQL REVOKE 命令来撤销使用者的对象存取权限。REVOKE 陈述式的语法如下:
REVOKE [ GRANT OPTION FOR ]
      { ALL [ PRIVILEGES ] | permission }
            [ column  ON  {table | view} ] |
            [ ON table(column) ] |
            [ ON view(column) ] |
            [ ON   {stored_procedure | extended_procedure} ]
{ TO | FROM }  security_account
            [ CASCADE ]
            [ AS  {group | role}  ]
security_account 参数必须是下列账户类型之一:
•  Microsoft SQL Server 使用者
 
•  Microsoft SQL Server 角色
 
•  Microsoft Windows NT 或 Windows 2000 使用者
 
•  Windows NT 或 Windows 2000 群组
 
与撤销存取权限相同,GRANT OPTION FOR 选项允许您撤销之前用 GRANT OPTION 关键词授予的存取权限。AS 选项指定要执行 REVOKE 陈述式的权限。
以下是使用 REVOKE 陈述式的范例:
REVOKE ALL
ON     Customers
TO     MaryW
REVOKE AL L陈述式将移除在 Customers 数据表中使用者 MaryW 拥有的所有存取权限。
________________________________________
相关信息
要检视在 REVOKE 陈述式中指定的存取权限清单,请查阅《在线丛书》索引中的 REVOKE。
________________________________________
数据库陈述式存取权限
 
除了数据库对象存取权限,您还可以分配陈述式存取权限。对象存取权限让使用者存取数据库中现存的对象,而陈述式存取权限则授权使用者建立数据库对象,包括数据库和数据表。陈述式存取权限如下:
•   BACKUP DATABASE 执行 BACKUP DATABASE 命令
 
•   BACKUP LOG 执行 BACKUP LOG 命令
 
•   CREATE DATABASE 用来建立新的数据库
 
•   CREATE DEFAULT 用来建立可关联至字段的默认值
 
•   CREATE PROCEDURE 用来建立预存程序
 
•   CREATE RULE 用来建立规则
 
•   CREATE TABLE 用来建立新的数据表
 
•   CREATE VIEW 用来建立新的检视
 
陈述式存取权限可以用 Enterprise Manager 或 T-SQL 分配。
使用 Enterprise Manager 分配陈述式存取权限
 
要使用 Enterprise Manager 为使用者授予数据库的陈述式存取权限,请按照下列步骤操作:
1. 展开一个服务器群组,展开一个服务器,然后展开 数据库 数据夹。在需要分配存取权限的数据库上按一下鼠标右钮,并从快捷菜单中选择 内容 ,显示数据库的属性窗口,如图34-16所示。
 
 
图34-16 数据库的属性窗口
2. 选取 权限 页签,如图34-17所示。在这里可以为存取该数据库的使用者分配存取权限。这些数据列包含复选框,规定了所要分配的陈述式存取权限,而 使用者/角色 字段列出了存取这个数据库的使用者和角色。
 
 
图34-17 数据库属性窗口的权限页签
使用 T-SQL 分配陈述式存取权限
 
您可以使用 GRANT T-SQL 陈述式为使用者分配陈述式存取权限。GRANT 陈述式的语法如下:
GRANT { ALL | statement }
TO    security_account
可以分配给使用者的陈述式存取权限包括 CREATE DATABASE、CREATE DEFAULT、CREATE PROCEDURE、CTEATE RULE、CREATE TABLE、CREATE VIEW、BACKUP DATABASE 和 BACKUP LOG,如前所述。例如要为使用者账户 Elea 新增 CREATE DATABASE和CREATE TABLE 陈述式存取权限,请使用下面的命令:
GRANT CREATE DATABASE,CREATE TABLE
TO    'Elea'
所以,为使用者账户新增陈述式存取权限其实并不困难。
使用 T-SQL 撤销陈述式存取权限
 
您也可以使用 T-SQL 陈述式 REVOKE 来撤销使用者账户的陈述式存取权限。REVOKE 陈述式的语法如下:
REVOKE { ALL | statement }
FROM   security_account
例如,要从使用者账户 Elea 上撤销 CREATE DATABASE 陈述式存取权限,可使用下列命令:
REVOKE CREATE DATABASE
FROM   'Elea'
正如所见,撤销使用者的陈述式存取权限也不是个复杂的过程。
管理数据库角色
 
使用数据库角色可以简化管理使用者存取权限的工作。数据库角色就是设计用来允许一组使用者接受同样的数据库存取权限,这样便不需要个别的分配这些存取权限。不要分配给每个使用者个人的存取权限,可以为一组使用者建立角色,然后分配存取权限。
角色是为了特殊的工作群组、工作类别或工作任务而设计。在这种情况下,根据新使用者所执行的工作,它们可以成为一个或多个数据库角色的成员。例如,角色可能定义成工作类别,如支付性账户、接受性账户、工程以及人力资源等。当一个使用者加入这些部门或群组中时,他或她就被分配为这个角色的一个成员。一个使用者可以是一个或多个角色的成员,但是并不一定要求使用者成为某一角色的成员。除了成为数据库角色的成员以外,使用者也可以分配个人存取权限。
建立和修改角色
 
和 DBA 所执行的大多数任务一样,建立和修改数据库角色也可以透过Enterprise Manager 或 T-SQL 命令来完成。(SQL Server 没有提供这一类的精灵。)这两种方法必须完成同样的例行性任务:
•  建立数据库角色。
 
•  为角色分配存取权限。
 
•  为角色分配使用者。
 
当检视角色时,可以看到分配给角色的存取权限和分配给角色的使用者。
使用 Enterprise Manager 管理角色
 
要使用 Enterprise Manager 建立数据库角色,请按照下列步骤操作:
1. 展开一个服务器群组,展开一个服务器,然后展开 数据库 数据夹。在需要建立角色的数据库上按一下鼠标右钮(本范例使用 Northwind),并从快捷菜单中选择 新增 ,接着选择 数据库角色 。另外一种方法,可以展开数据库,在 角色 上按一下鼠标右钮,并从快捷菜单中选择 新增数据库角色 。这两种方法都可进入 数据库角色属性 窗口,如图34-18所示。
 
 
图34-18 「数据库角色属性」窗口
2. 在 名称 文字方块中键入名称来为角色分配描述性名称-请选择一个有助于记住角色功能的名称。
3. 按一下 新增 为角色分配使用者。这时将会显示可以存取该数据库的使用者账户清单,如图34-19所示。选取要分配给该角色的使用者。如果要取消选择使用者,只要在使用者名称上再按一下就可以了。在完成修改角色成员后,按一下 确定 即可建立了新角色。现在返回 Enterprise Manager 窗口中。
 
 
图34-19 新增角色成员对话框
4. 要为角色分配存取权限,先展开 角色 数据夹开启 数据库角色属性 窗口,在角色名称上按一下鼠标右钮,并从快捷菜单中选择 内容 。然后按一下 权限 ,进入 数据库角色属性 - Northwind 窗口,如图34-20所示。
在这个窗口中,可以为数据库中的对象角色分配不同的存取权限。选择清单中适合的复选框。数据库对象是列在 对象 数据列中的。选择窗口上方的选项可以检视所有的对象,或是列出这个角色有权限的对象。一旦分配了一个角色给某个使用者,使用者就获得了分配给这个角色的所有存取权限。
在建立了角色后,可以在 数据库角色属性 窗口中修改。要修改角色,请按照为角色增加存取权限的步骤操作。也可以在 数据库角色属性 窗口中新增以及删除使用者和存取权限。
使用 T-SQL 管理角色
 
也可以使用 sp_addrole 预存程序来建立角色。sp_addrole 预存程序的语法如下:
sp_addrole [ @rolename = ] 'role'
       [ , [ @ownername = ]  'owner' ]

 
 
图34-20 数据库角色属性 - Northwind窗口
例如,要在 Northwind 数据库中加入一个名称为 readonly 的角色,请使用下列 T-SQL 命令:
USE Northwind
GO
sp_addrole 'readonly' , 'dbo'
GO
USE Northwind 命令选取 Northwind 为目前数据库。如果没有指定数据库,那么在预设数据库中会建立角色。
这个预存程序只能建立角色。要为角色增加存取权限,请使用前面描述的 GRANT 陈述式。要为角色删除存取权限,请使用 REVOKE 陈述式。
例如,要为 readonly 角色增加 Employees、Customers 和 Orders 数据表的SELECT 存取权限,请使用下列的 GRANT 陈述式:
USE Northwind
GO
GRANT SELECT
ON    Employees
TO    readonly
GO
GRANT SELECT
ON    Customers
TO    readonly
GO
GRANT SELECT
ON    Orders
TO    readonly
GO
要为角色增加使用者,请使用 sp_addrolemember 预存程序。sp_addrolemember 预存程序的语法如下:
sp_addrolemember 'role','security_account'
下列命令可为 readonly 角色增加使用者:
USE Northwind
GO
sp_addrolemember 'readonly' , 'Guest'
GO
使用固定的服务器角色
 
在 SQL Server 安装时,建立了大量预先定义的服务器角色。这些固定服务器角色被用来授予存取权限给 DBA,这些角色包含了服务器存取权限以及对象和陈述式存取权限,清单如下:
•  bulkadmin 可以执行大量插入
 
•  dbcreator 可以建立和变更数据库
 
•  diskadmin 可以管理磁盘档案
 
•  processadmin 可以管理S QL Server 程序
 
•  securityadmin 可以管理登入账户和建立数据库存取权限
 
•  serveradmin 可以设定任何服务器选项,并且可以关闭数据库
 
•  setupadmin 可以管理连结的服务器和启动程序
 
•  sysadmin 可以执行任何服务器行为
 
为使用者账户分配固定服务器角色,可让使用者执行角色所拥有存取权限的管理任务。依需要让所有的DBA使用相同的管理账户可能会更好些。与数据库角色相比,固定服务器角色比个人存取权限更容易维护,但是固定服务器角色是不能修改的。您可以按照下列步骤为一个使用者分配固定服务器角色。
1. 在 Enterprise Manager 中展开一个服务器群组,展开一个服务器,展开 安全性 数据夹,然后选取 服务器角色 。在需要加入使用者的固定服务器角色上按鼠标右钮,并从快捷菜单中选择 内容 ,进入 服务器角色 窗口,如图34-21所示。
 
 
图34-21 服务器角色窗口
2. 按 新增 ,为新增的使用者账户分配固定服务器角色。这将呼叫 新增成员 对话框,如图34-22所示。
 
 
图34-22 新增成员对话框
3. 选取了需要加入固定服务器角色的使用者之后,按一下 确定 ,返回 服务器角色属性 窗口。请按一下 确定 为安全性角色新增使用者。
安全性账户授权
 
SQL Server 2000 使用 Kerberos 安全模式建立安全性。(关于 Kerberos 安全模式的信息可参阅 第 2 章 。)SQL Server 2000 使用 Kerberos 通讯协议来支持客户端与服务器之间的相互认证。这使得客户端的安全识别能够在计算机之间流通,于是就可连接到不同的服务器上;登入新的服务器时,可使用个人化的用户识别进行数据的存取。这就是安全性账户授权。
我们来看一个安全性账户授权的例子。假定一个用户连接到 Server A 为NTDOMAIN/AlexR,而 ServerA 又与 ServerB 相连接。那么 ServerB 就知道连接的安全性识别为 NTDOMAIN/AlexR。这减少了用户登入到 ServerB 的需求。
如果要使用安全性账户授权,所连接的所有服务器都必须能够执行 Windows 2000,并支持 Kerberos,而且您必须正在使用 Active Directory 服务。下列选项必须在 Active Directory 中设定,以便进行授权:
•   账户敏感无法授权 要求授权的使用者绝对不能选择这个选项。
 
•   账户可以授权 SQL Server 2000 的服务器账户一定要选这个选项。
 
•   计算机可以授权 执行 SQL Server 2000 的服务器一定要选这个选项。
 
设定 SQL Server
 
在使用安全性账户授权之前,必须先设定 SQL Server 2000 来接受授权。授权促成彼此相互确认。要使用安全性账户授权,SQL Server 2000 必须有 Windows 2000 账户网域管理员分配的 Service Principal Name(SPN)。SPN 必须分配到计算机上 SQL server 的服务器账户。SPN 必须证明 SQL server 是经由特定服务器以及 Windows 2000 账户网域管理员认证的。您可以让您的网域管理员使用在 Windows 2000 Resource Kit 上取得的 Setspn 公共程序,来为 SQL Server 建立一个 SPN。
要建立 SPN,请执行下列命令:
setspn -A MSSQLSvc/Host:port serviceaccount
以下为使用这个命令的范例:
setspn -A MSSQLSvc/MyServer.MyDomain.MyCompany.com sqlaccount
________________________________________
相关信息
关于 Setspn 公用程序的相关信息,请参阅 Windows 2000 文件。
________________________________________
您也必须用 TCP/IP 来使用安全性账户授权,不能使用已命名的管道,因为 SPN要使用特定的 TCP/IP 通讯端。如果使用多重连接埠,每个连接埠都必须有 SPN。
您可以用 LocalSystem 账户授权。SQL Server 将在服务器启动时自己注册登记,并且自动登记 SPN。这个选项比使用网域的使用者账户来授权还要容易。然而,当 SQL Server 关闭时,SPN 将无法替 LocalSystem 账户注册。为了在 LocalSystem 账户之下授权,请在 Setspn 公用程序中执行下列命令:
setspn -A MSSQLSvc/Host:port serviceaccount
________________________________________
说明
如果您要在 SQL Server 2000 中变更服务器账户,您必须删除之前定义的SPN,然后建立新的账户。
________________________________________
本章总结
 
本章学习了 SQL Server 使用者和安全性管理,也看到了如何使用数据库登入账户和数据库使用者账户允许数据库的存取。此外还学习如何建立与管理登入账户和数据库使用者,并学到了如何利用数据库角色简化使用者管理,并依照工作性质分配角色的存取权限。角色可以分配给多个使用者,让分配存取权限和修改变得更加容易。此外也看到了被称为固定服务器角色的特殊角色,这些角色是用来为使用者和 DBA 分配管理存取权限。最后我们看到了在 SQL Server 2000 中安全性的提升,使得服务器之间的安全性账户更能够安全地流通。在 第 35 章 中,我们将学习 SQL 预存程序以及如何调校 SQL 查询。

CARLA模拟器中文贡献指南:从环境搭建到CI通过的全流程实战 CARLA模拟器是自动驾驶算法研发与仿真验证的核心开源平台,其基于Unreal Engine构建,融合C++底层仿真、Python API绑定及动态文档生成等关键技术。理解CARLA的Gitflow协作模型、分支管理规范与CI检查机制,是保障代码稳定性与ABI兼容性的前提;掌握Linux/Windows环境下的快速启动包适配、NVIDIA驱动-CUDA版本约束、UE4定制引擎编译等实操要点,可大幅降低入门门槛。本文聚焦CARLA贡献者高频痛点,覆盖环境配置、PR提交、CI调试、文档与美术资源协同等全链路场景 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第三百零四篇 高性能系统开发指南01

高并发:限流、熔断、降级高性能:红包拆分、多级缓存、大Key/热Key拆分、Pipeline、线程池、RocketMQ零丢失、幂等、分布式锁、集群缩容、分批入库海量数据处理:日志分表分片、跨表查询、冷热分层、大数据引擎服务器选型系统安全:网关安全、服务器安全、云存储安全、风控、监控、测试数据一致性:缓存与数据库一致性、大厂方案、蓝绿回滚、流量一致性、流程一致性项目与团队管理:流程问题、管理问题(风险、成本、人员、文档、培训)稳定性建设:上线三板斧、线上五步闭环、混沌工程、容量规划。

weixin_49199313的博客 249

SQL——sql自连接、排序、分页、子查询、mySQL函数

自连接 https://www.bilibili.com/video/BV1NJ411J79W?p=21 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 SELECT语法表的顺序不能变。 排序 分页 https://www.bilibili.com/video/BV1NJ411J79W?p=22 练习 ...

beishanqiye的博客 424

【UE5】多用户协同编辑实战:从配置到实时协作

本文详细介绍了在虚幻引擎5中配置和使用多用户协同编辑功能的完整流程。从启用Multi-User Editing插件、配置UDP Messaging网络通信,到启动服务器、创建会话并实现实时协作,提供了从环境准备到实战协作的清晰指南。文章还分享了资产同步、场景分批、对象锁定等实用技巧,并强调了网络配置与版本一致性等关键避坑点,旨在帮助中小型团队提升关卡设计和原型开发的协作效率。

weixin_29001683的博客 268

Spring Boot 2.7 + Vue 3 集成企业微信:3步配置实现组织同步与扫码登录

本文详细介绍了Spring Boot 2.7与Vue 3集成企业微信的技术方案,涵盖组织同步与扫码登录的工程化实现。通过三步配置流程,开发者可快速完成企业微信应用的基础设置、接口权限配置及前后端集成,实现高效的系统集成与用户认证。文章还提供了最佳实践、性能优化方案及常见问题排查指南,助力企业快速落地数字化办公解决方案。

weixin_30591551的博客 386

Scipy优化踩坑实录:trust-constr和SLSQP约束定义到底差在哪?

本文深入解析了Scipy优化模块中trust-constr和SLSQP两种方法在约束定义上的差异。通过对比面向对象的trust-constr和字典式定义的SLSQP,揭示了它们各自的优势与适用场景,帮助开发者在有约束优化问题中选择合适的算法,提升计算效率与准确性。

weixin_42573113的博客 271

Cursor+Playwright MCP实战:如何用自然语言一键生成UI自动化测试脚本

本文探讨了如何利用Cursor与Playwright MCP实现自然语言驱动的UI自动化测试脚本生成。通过智能IDE与浏览器自动化协议的结合,开发者可以高效创建稳定的测试脚本,显著提升测试效率与维护性。重点介绍了MCP架构的优势、项目结构最佳实践及团队协作规范,为自动化测试带来革命性改进。

k8l9m0n的博客 442

goalng开发_开发篇

Go 面试,基础知识

qq_46640341的博客 1161

量子密钥分发系统的工程实践(四):FPGA在后处理中的核心实现与优化

本文深入探讨了FPGA在量子密钥分发(QKD)系统后处理中的核心实现与优化策略。文章详细拆解了FPGA如何高效完成原始密钥提取、误码协商和私密放大等关键任务,并分享了流水线设计、资源复用及存储器架构优化等工程实践“心法”,旨在解决高速、实时QKD系统中的性能瓶颈,提升密钥生成率。

t8u9v0的博客 388

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

基于CNN的表情识别(FER)pytorch实现

Report for FER Jian Tang Abstract 我们使用卷积神经网络(CNN)实现了baby的面部表情识别(FER)。 数据上,我们获取了开源FER数据集FER2013[1],besides我们使用爬虫获取了baby相关的人脸图片,进行了手工分类标注以形成一个全新的baby FER数据集。 模型上,我们首先复现了Luan[2]的工作,即参考Kuo[3]在CVPR 2018上的工作并实现一个轻量的CNN网络,在FER2013上进行训练并得到了XXXX%的平均分类准确率(avg a

qq_20241587的博客 3683

【SLG游戏服务器开发手册】(ROK Like)沙盘地图篇一,菱形瓦片与笛卡尔坐标系的转换(附调试工具)

轴向坐标:以菱形网格对角方向为基准轴,记作(q, r)菱形瓦片宽度 w=2a,高度 h=a(宽高比2:1)

代码时光 981

[SQL Server]管理常用SQL语句

[SQL Server]管理常用SQL语句  1. 查看数据库的版本           select @@version   2. 查看数据库所在机器操作系统参数          exec master..xp_msver   3. 查看数据库启动的参数           sp_configure   4. 查看数据库启动时间           select

7923

上位机介绍:C# 开发者的必知基础

上位机是指在工业控制系统中,位于上层、负责人机交互和数据管理的计算机/软件,与“下位机”(PLC、传感器、变频器、单片机等硬件设备)相对应,核心是“向下通信控制设备,向上展示交互数据”。下位机:一线干活的“工人”(执行采集、控制指令);上位机:指挥管理的“办公室人员”(发指令、看数据、做报表)。C#开发者掌握上位机开发的核心是“通信+UI+稳定性基础层:搞懂WinForms/WPF基础、串口/Modbus通信,能实现核心功能;进阶层:掌握分层设计、异步编程、工业级容错(断线重连、数据校验);

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1559

《MS SQL Server 2000管理员手册》系列——17. 建立与使用索引

17. 建立与使用索引什么是索引? 索引概念建立索引重新建置索引使用索引设计有效的索引本章总结对数据库设计者而言,索引是最有用的工具之一。 索引 (index)是一个让您能增进查询效能的辅助结构,它能减少检索查询数据所必须的I/O动作数量。换言之,索引让Microsoft SQL Server 2000以较少的I/O操作来找出数据,减少搜寻数据的量。当您使用数据库数据表的索引来检索数据列时,SQL

3116

图解移动机器人中的运动规划(Motion Planning),附几十种规划算法

运动规划是移动机器人的核心理论和工程技术之一,本文作为教程先导,解析了运动规划的两大组件——路径规划和轨迹规划。欢迎感兴趣的同学订阅专栏!

FRIGIDWINTER的博客 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《MS SQL Server 2000管理员手册》系列——24. 加载数据库

24. 加载数据库加载操作的效能 大量复制工具程序BULK INSERT 陈述式数据转换服务Staging 资料表SELECT...INTO 陈述式本章总结在学会了建立数据库和数据库数据表,就可学习加载数据了。将数据加载数据库的方法有好几种,采用何种方法取决于数据来源、对数据进行何种处理,以及资料将加载何处。本章将学习以下几种加载数据库的方法:•   使用大量复制工具程序(Bulk Copy Pr

2991

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

《MS SQL Server 2000管理员手册》系列——31. 管理作业自动化

31. 管理作业自动化SQL Server代理程序服务 作业警示SQL Server代理程序错误记录文件本章总结在 第 30 章 中我们看了几项自动化设定的选项,以及 SQL Server 2000 提供的数据库选项,这些选项帮助 DBA 减少了的调整作业。在本章中将学会使用 SQL Server 提供的辅助工具,以透过 SQLServer 代理程序服务来自动执行其它的管理作业。SQLServer

2896

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数据库设计经验谈(上)

数据库设计经验谈(上)一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,再好的老师也比不过经验的教诲

2874

《MS SQL Server 2000管理员手册》系列——35. 使用SQL Query Analyzer和SQL Profiler

35. 使用SQL Query Analyzer和SQL Profiler使用SQL Query Analyzer 使用SQL Profiler最佳化T-SQL陈述式本章总结本章我们将继续 第 21 章 中关于预存程序的说明。本章将学习如何利用 SQL Query Analyzer 和 SQL Profile 分析预存程序和其它陈述式。从分析中可以确定 T-SQL 陈述式是否有效率。一个有效的 S

2844

《MS SQL Server 2000管理员手册》系列——33. 还原及回复数据库

33. 还原及回复数据库还原方法 执行数据库还原规划严重损坏的回复本章总结在 第 32 章 中,我们学到了系统备份的重要性,以及如何执行备份。本章将继续上一章所提的数据库保护与建立的说明。我们将学习如何还原数据库、如何回复系统,还有数据库回复的运作方式。正如您所见,备份执行的类型会影响到回复的进行。除了学习关于还原与回复数据库,也会介绍 记录文件传送 (log shipping)。记录文件传送是

2773

《MS SQL Server 2000管理员手册》系列——9. 建立数据库

9. 建立数据库数据库结构 系统数据库建立数据库检视数据库删除数据库本章总结当您将 Microsoft SQL Server 2000 的数据库设计与安装完成后,下一步就可学习如何建立数据库。与早期的版本比较,SQL Server 2000 的数据库沿用 SQL Server 7 的数据储存与空间管理方式。早期的版本使用逻辑装置和固定尺寸的数据区段来放置数据;而 SQL Server 2000 可

2655

《MS SQL Server 2000管理员手册》系列——16. 建立与使用默认值、条件约束及规则

16. 建立与使用默认值、条件约束及规则默认值 条件约束规则对象本章总结默认值、条件约束及规则对象皆是您可以在数据表的数据行定义中的选择性属性。在 第15章 ,曾学习了使用如何用ALTER TABLE命令替数据表新增具有默认值的数据行。本章则涵盖设立及修改默认值之方式。回顾一下,设定 默认值 (default)指的是在一没有明确设定值的数据行中,输入一明确的值。 条件约束 (constraint)

2613

《MS SQL Server 2000管理员手册》系列——20. 认识进阶的 T-SQL

20. 认识进阶的 T-SQLINSERT 陈述式 UPDATE 陈述式DELETE 陈述式程序设计关键词本章总结本章将详细讨论前面章节所使用过用来修改数据的T-SQL陈述式,加上一些可用来控制程序设计流程的T-SQL关键词。这些陈述式及关键词可用于任何可以使用T-SQL的地方,如使用在指令行、指令码、预存程序、批次文件和应用程序中。我们会特别学习有关数据处理的陈述式,如INSERT、UPDATE

2607
上一篇: 《MS SQL Server 2000管理员手册》系列——33. 还原及回复数据库
下一篇: 《MS SQL Server 2000管理员手册》系列——35. 使用SQL Query Analyzer和SQL Profiler
天地客人
博客等级 码龄23年 62粉丝 168原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值