创建一个用户名为“John”的用户,密码为“123456”,该用户对HISDB数据库中的Patient表只有查询的权限,没有删除、插入和修改权限。以该用户名和密码登录到SQL Server服务器,对Patient表进行查询、插入、删除和修改操作来验证用户权限。 6.修改上题中“John”用户的权限,授予其对Patient表的查询、插入和修改权限,重新再对该用户权限进行验证。 7.为HISDB数据库创建一个名称为“MyRole”的数据库角色,设置其对所有表具有Select权限,此外,对Patient表和Doctor表还具有修改、插入或删除权限,禁止在Curefee表执行Delete操作。 8.为HISDB数据库创建一个名称为“zhangsan”的用户,该用户对应SQL Server登录帐户“zhangsan”,将该用户添加为数据库角色MyRole的成员。
时间: 2024-01-21 15:16:20 浏览: 173
6. 修改John用户的权限:
```
USE HISDB
GO
REVOKE SELECT ON Patient FROM John
GO
GRANT SELECT, INSERT, UPDATE ON Patient TO John
GO
```
然后以John用户登录SQL Server进行查询、插入、删除和修改操作,发现用户已经有了这些权限。
7. 创建MyRole数据库角色,并设置权限:
```
USE HISDB
GO
CREATE ROLE MyRole
GO
GRANT SELECT ON OBJECT::[dbo].[Doctor] TO MyRole
GRANT SELECT, INSERT, UPDATE ON OBJECT::[dbo].[Patient] TO MyRole
DENY DELETE ON OBJECT::[dbo].[Curefee] TO MyRole
GO
```
8. 创建zhangsan用户并添加到MyRole角色:
```
USE master
GO
CREATE LOGIN zhangsan WITH PASSWORD = 'password'
GO
USE HISDB
GO
CREATE USER zhangsan FOR LOGIN zhangsan
GO
EXEC sp_addrolemember 'MyRole', 'zhangsan'
GO
```
这样,zhangsan用户就有了对Patient表和Doctor表的查询、插入、修改权限,以及对所有表的查询权限,但无法在Curefee表上执行删除操作。
相关问题
.将HISDB数据库完全备份到磁盘文件D:\ HisdbBackup中,然后使用备份文件D:\ HisdbBackup进行完全恢复操作。 2.建立一个名称为“HIS维护计划”的数据库维护计划,将HISDB数据库每天0:00备份到磁盘目录D:\下,事务日志每隔8小时备份一次到磁盘目录D:\下。 3.将HISDB数据库中的病人信息表数据(Patient)导出到Excel文件D:\ Patient.xls。 4.将HISDB数据库进行分离,然后再练习附加数据库HISDB_Data.MDF的操作。
1. 备份和恢复HISDB数据库
备份数据库:
使用以下命令在SQL Server Management Studio中备份HISDB数据库:
```
BACKUP DATABASE HISDB
TO DISK = 'D:\HisdbBackup\HISDB.bak'
```
这将备份HISDB数据库到名为HISDB.bak的文件中,并将其保存在D:\HisdbBackup目录中。
恢复数据库:
使用以下命令在SQL Server Management Studio中从备份文件恢复HISDB数据库:
```
RESTORE DATABASE HISDB
FROM DISK = 'D:\HisdbBackup\HISDB.bak'
WITH REPLACE;
```
这将从备份文件HISDB.bak中恢复HISDB数据库。
2. 创建HIS维护计划
使用以下步骤在SQL Server Management Studio中创建HIS维护计划:
1. 在对象资源管理器中,右键单击SQL Server代理,然后选择“新建维护计划”。
2. 在“新建维护计划”对话框中,输入名称“HIS维护计划”。
3. 选择“日常”作为计划类型。
4. 在“计划”选项卡中,选择“每天”,并将时间设置为“0:00”。
5. 单击“添加”按钮,在“添加任务”对话框中选择“备份数据库”任务类型。
6. 配置备份数据库任务,指定备份类型为“完整”,备份文件路径为“D:\”,并指定备份文件名。
7. 单击“添加”按钮,在“添加任务”对话框中选择“备份事务日志”任务类型。
8. 配置备份事务日志任务,指定备份文件路径为“D:\”,并指定备份文件名。
9. 单击“确定”按钮保存维护计划。
3. 导出病人信息表到Excel文件
使用以下命令在SQL Server Management Studio中将HISDB数据库中的病人信息表数据导出到Excel文件:
```
EXEC master.dbo.sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC master.dbo.sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
EXEC xp_cmdshell 'bcp "SELECT * FROM HISDB.dbo.Patient" queryout "D:\Patient.xls" -c -T';
EXEC master.dbo.sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
EXEC master.dbo.sp_configure 'show advanced options', 0;
RECONFIGURE;
```
这将从HISDB数据库中选择病人信息表数据,并将其导出到D:\Patient.xls文件中。
4. 分离和附加数据库
使用以下命令在SQL Server Management Studio中分离HISDB数据库:
```
USE master;
GO
EXEC sp_detach_db @dbname = N'HISDB';
GO
```
然后使用以下命令在SQL Server Management Studio中附加HISDB数据库:
```
USE master;
GO
CREATE DATABASE HISDB
ON (FILENAME = 'D:\HISDB_Data.MDF')
FOR ATTACH_REBUILD_LOG;
GO
```
这将从SQL Server中分离HISDB数据库,然后重新连接到HISDB_Data.MDF文件并附加该数据库。
用ALTER DATABASE打开数据库HISDB并将该数据库的主数据文件大小改为8MB
在SQL Server中,如果你想要更改数据库HISDB的主数据文件大小,通常需要通过ALTER DATABASE语句来完成这个操作。然而,要注意的是,ALTER DATABASE命令不会直接改变文件的实际大小,而是设置最大大小或初始大小,对于增加文件大小,你需要先将文件附加到更大尺寸,然后再调整其大小。这是一个基本步骤:
1. **备份当前数据库**:在修改之前,总是建议先备份以防数据丢失。
```sql
BACKUP DATABASE HISDB TO DISK = '路径\to\backup.bak'
```
2. **附加现有的数据文件**:如果数据文件已经在服务器上,你可以尝试附加到新的较大空间,例如:
```sql
ALTER DATABASE HISDB FILE (NAME = PRIMARY) ADD SIZE = 8096000 KB;
```
这里的8096000 KB等于8 MB。
3. **确认并检查**:附加完成后,可以检查数据文件的大小是否已经更改:
```sql
SELECT name, file_size, max_size
FROM sys.database_files
WHERE database_id = DB_ID('HISDB');
```
4. **最后的调整**:如果需要,你可以进一步调整数据文件的最大大小,使其与实际文件大小一致:
```sql
ALTER DATABASE HISDB MODIFY FILE (NAME = PRIMARY) MAXSIZE = 8096000 KB;
```
**请注意**:以上操作应在服务器管理权限下进行,并确保有足够的磁盘空间。如果数据库正在进行活动,你可能需要在低流量时段进行以减少影响。
阅读全文