首页 > 数据库 >sqlserver基础

sqlserver基础

时间:2024-08-27 15:04:23浏览次数:6  
标签:ysh database sqlserver 基础 server --- sql test

说明:此次笔记针对sqlserver2019版本

启停

右击服务名称,可选择停服/起服/重启服务

sql server(MSSQLSERVER) -- 开启

代理--开启

sqlserver 网络配置-- mssqlserver的协议--TCP/IP -- 开启

SQL Native Client 11.0配置-- 客户端协议--TCP/IP -- 开启

image-20240826145315383 img image-20240826161821717 img img image-20240826161900573

客户端

SQL Server Management Studio(ssms)

安装地址:https://aka.ms/ssmsfullsetup

点击连接--数据库引擎

image-20240826155746930 img

库、表、视图、用户

1.库操作

#建库
create database db_test;
#查询库
SELECT name, database_id  FROM sys.databases;
#指定使用数据库
use db_test;

2.表操作

#建表
create table test_tb (i int,j char);
#插入数据
insert into test_tb(i,pri)  values(124,111)
#查询数据
select * from test_tb;
#删表
drop table test_tb;
#清除表数据
truncate table test_tb;
delete from test_tb;
#删除某条数据
delete from test_tb where i=122;
#添加表字段
alter table test_tb add pri_new char not null ;
#添加主键约束
alter  table test_tb add constraint pk_pri  primary key (pri_new)
#查看表结构
EXEC sp_help test_tb

3.视图

#查看视图
SELECT name AS ViewName  FROM sys.views;
#查看视图的定义
SELECT v.name AS ViewName, m.definition  FROM sys.views v  JOIN sys.sql_modules m ON v.object_id = m.object_id;

4.用户管理

  • 登录名(Login):登录名是用户连接到SQL Server实例的凭证。它可以是SQL Server身份验证(使用用户名和密码)或Windows身份验证(使用Windows用户名和密码或组)的一部分。登录名用于验证用户的身份,允许用户访问SQL Server实例。
  • 用户(User):用户是与特定数据库相关联的安全主体。每个登录名在尝试连接到数据库时都需要一个相应的数据库用户。这个数据库用户可以是基于登录名的,也可以是基于其他安全主体的(例如其他数据库用户或Windows组)。用户决定了在特定数据库范围内可以执行哪些操作。
  • 角色(Role):角色是一组用户的集合,用于简化权限管理。通过将一组相关的权限分配给一个角色,然后将用户添加到该角色,可以轻松地管理一组用户的权限,而不必单独为每个用户分配权限
---创建登录名
use master
create login ysh with password = N'bb123456??'
---创建数据库用户
USE db_test; 
CREATE USER ysh_user FOR LOGIN ysh;

---删除一个用户
use db_test
drop user ysh_user;
--- 删除登录名
use db_test
drop user ysh;

--授予权限
---授予操作表的权限
use db_test
GRANT SELECT, INSERT, UPDATE ON test_tb TO ysh_user;
---授权数据库SELECT, INSERT, UPDATE权限
GRANT SELECT, INSERT, UPDATE ON database::db_test TO ysh_user;
---授权建表权限(实测没效果)
GRANT CREATE TABLE TO    ysh_user;
--- 授予目标用户对特定数据库的所有权限(此条命令,可以对db_test执行增删改查、建表等操作了)
GRANT CONTROL ON DATABASE::db_test TO ysh_user;
---回收权限
REVOKE SELECT, INSERT, UPDATE ON database::db_test FROM ysh_user;
---查看权限
SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('ysh_user');


参考官网:https://learn.microsoft.com/zh-cn/sql/relational-databases/security/permissions-database-engine?view=sql-server-ver16

或者直接通过ssms选择数据库--属性,修改

image-20240827135551740
--角色
---数据库级别查看角色
SELECT   
    DP1.name AS DatabaseRoleName,   
    isnull(DP2.name, 'No members') AS DatabaseUserName  
FROM   
    sys.database_role_members AS DRM  
RIGHT OUTER JOIN   
    sys.database_principals AS DP1 ON DRM.role_principal_id = DP1.principal_id  
LEFT OUTER JOIN   
    sys.database_principals AS DP2 ON DRM.member_principal_id = DP2.principal_id  
WHERE   
    DP1.type = 'R'  
ORDER BY   
    DP1.name;
  
--- 服务器级别
SELECT   
    name,   
    type_desc,   
    is_fixed_role  
FROM   
    sys.server_principals  
WHERE   
    type = 'R';
    
---授予用户read的角色
use db_test
exec sp_addrolemember 'db_datareader' , ysh_user;
或者:ALTER  ROLE db_datareader ADD MEMBER ysh_user ;  

---查看用户所属角色
SELECT   
    r.name AS RoleName  
FROM   
    sys.database_role_members rm  
INNER JOIN   
    sys.database_principals r ON rm.role_principal_id = r.principal_id  
INNER JOIN   
    sys.database_principals u ON rm.member_principal_id = u.principal_id  
WHERE   
    u.name = 'ysh_user'; -- 替换'UserName'为你需要查询的用户名
    
--- 从角色删除用户
ALTER ROLE db_datareader DROP MEMBER  ysh_user; 

角色参考:https://learn.microsoft.com/zh-cn/sql/relational-databases/security/authentication-access/join-a-role?view=sql-server-ver16&viewFallbackFrom=sql-server-2014&redirectedfrom=MSDN

备份

参考:https://learn.microsoft.com/zh-cn/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server?view=sql-server-ver16&redirectedfrom=MSDN

定时备份:https://learn.microsoft.com/zh-cn/troubleshoot/sql/database-engine/backup-restore/schedule-automate-backup-database

主备

订阅发布:

1.https://learn.microsoft.com/zh-cn/sql/relational-databases/replication/publication-properties-subscription-options?view=sql-server-ver16&redirectedfrom=MSDN

2.https://www.cnblogs.com/aroin/p/18325307

always on:https://learn.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver16&redirectedfrom=MSDN

官网:https://learn.microsoft.com/zh-cn/sql/sql-server/what-is-sql-server?view=sql-server-ver16

https://learn.microsoft.com/zh-cn/sql/sql-server/?view=sql-server-ver16

标签:ysh,database,sqlserver,基础,server,---,sql,test
From: https://www.cnblogs.com/aroin/p/18382668

相关文章

  • inno setup基础的脚本代码
    ;脚本由InnoSetup脚本向导生成!;有关创建InnoSetup脚本文件的详细资料请查阅帮助文档!#defineMyAppName"LeawoBlu-rayPlayer"#defineMyAppVersion"1.0.0.0"#defineMyAppPublisher"moyea"#defineMyAppURL"https://www.example.com/"#defi......
  • C++与C语言中基础数据类型详解
    目录引言基础数据类型分类实际编程中的应用建议结论引言在C++与C语言的编程世界中,理解并正确使用基础数据类型是每个程序员的必备技能。不同的数据类型在内存中的占用和表示方式直接影响到程序的性能和行为。本文将详细介绍C++与C语言中常见的基础数据类型,探讨它们......
  • 软件设计师全套备考系列文章12 -- 计算机网络基础
    软考--软件设计师(12)--计算机网络基础文章目录软考--软件设计师(12)--计算机网络基础前言一、章节考点二、网络分类三、七层网络协议结构四、TCP/IP五、IP协议前言考试时间:每年5月、11月,软件设计师每年都会开考。考试条件:三不限考试形式:一共两门 计算机于软......
  • PostgreSQL基础
    1.数据类型1.4布尔类型bool1.5网络地址类型cidr:对ip和子网掩码合法性做校验,输出时会带子网掩码inet:对ip做校验,输出时有可能带子网掩码macaddr和macaddr8:MAC地址1.5.1操作符1.5.2函数host:取ip地址SELECThost(cidr'192.168.2.0/24')text:取ip和子网掩码SE......
  • SQL基础综合练习题(39题)
    https://download.csdn.net/download/ruyigongfang/89681313可以用这个文件的建表语句在自己的pysql执行,就有该练习用的表。https://download.csdn.net/download/ruyigongfang/89681312该链接是只有题没有答案的文档。所用到的表:student(学生表):sno(学号),sname(学生姓名),ssex(学......
  • 【Linux入门】shell基础篇——变量与运算
    文章目录shell中的变量概述变量的作用Shell变量名与变量值变量名变量值变量的作用范围局部变量(LocalVariables)全局变量(GlobalVariables)注意变量的类型1.环境变量(EnvironmentVariables)2.位置变量(PositionalVariables)3.预定义变量(PredefinedVariables)补充:自定......
  • (软件测试)基础3
    1.用例执行添加一列为实际结果:出现上述情况:此时不通过!!!最耗时:等待bug回归2.缺陷缺陷介绍:问题不等于错误   任何问题都叫缺陷,问题并不代表错误测试:最终站在用户的角度缺陷产生原因:从需求产生,直至发布上线,从中都有可能有缺陷的产生(木桶效应)设计:架......
  • 计算机网络信息安全,零基础入门到精通,收藏这一篇就够了!
    01网络安全概述安全性威胁计算机网络通讯过程中,主要有两种威胁。•主动攻击•被动攻击具体攻击的位置如下图。从汽车电子的角度举个例子,大部分的软件工程师,应该都干过下面两件事。•被动攻击大家都做过的,“对标,抄袭”买来对标的车,找个一分二的线,不知道从哪弄来的......
  • Java基础-学习笔记14
    14集合Collection、Map第一部分Collection的框架体系1)可以动态保存任意多个对象,使用比较方便2)提供了一系列方便的操作对象的方法:add、remove、set、get等3)使用集合添加、删除新元素简单便捷。集合Collection主要是两组:单列集合,双列集合List、Set是存储单列的数据......
  • ETL数据集成丨实现SQLServer数据库的高效实时数据同步
    SQLServer,作为一款功能强大的关系型数据库管理系统(RDBMS),在企业级应用中占据着举足轻重的地位。它不仅提供了可靠的数据存储与管理能力,还集成了高级数据分析、报表服务、集成服务以及商业智能等功能,为复杂业务场景提供了全面的解决方案。SqlServer核心特性高性能与高可用性:SQL......